当前位置: 首页 > 知识库问答 >
问题:

尝试调用虚拟方法“void android”。小装置。射线组。在空对象引用上添加视图(android.view.view)“”

长孙正卿
2023-03-14

我是android的初学者,我使用的是java语言,而不是Kotlin。基本上,我在按下按钮后显示一个自定义警报对话框,警报对话框中有两个单选按钮。但问题是,在单击一个按钮以显示自定义对话框后,它会崩溃,显示null点异常。下面是代码和日志。

自定义对话框。Java语言

public class CustomDialog extends AppCompatDialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        LayoutInflater layoutInflater=getActivity().getLayoutInflater();
        View view=layoutInflater.inflate(R.layout.custom_dialog,null);
        builder.setView(view)
                .setTitle("Check Methods");
        final int[] num=getResources().getIntArray(R.array.methods);
        RadioButton radioButton=new RadioButton(getActivity());
        RadioButton radioButton1=new RadioButton(getActivity());
        radioButton.setText("A");
        RadioGroup radioGroup=getActivity().findViewById(R.id.radioGroup);
        radioButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int kk=num[0];
                int aa=kk;
            }
        });
        radioButton1.setText("B");
        radioGroup.addView(radioButton); //In this line it is showing null point exception and in debugging it is showing "radioGroup" is null
        radioGroup.addView(radioButton1);
        return builder.create();
    }
}

custom_dialog.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/radioGroup"/>
</LinearLayout>

方法。xml

<resources>
    <integer-array name="methods">
        <item>0</item>
    </integer-array>
</resources>

主要活动。Java语言

btnMethod.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openDialog(); //to show custom dialog after button press
}}

private void openDialog() {
    CustomDialog customDialog=new CustomDialog();
    customDialog.show(getSupportFragmentManager(),"Custom Dialog");
}

日志

Javahtml" target="_blank">语言lang.NullPointerException:尝试调用虚拟方法“void android”。小装置。射线组。在com的空对象引用上添加视图(android.view.view)。纳比尔。我的应用程序。自定义对话框。android上的onCreateDialog(CustomDialog.java:33)。支持v4.app。对话框片段。android上的OnGetLayoutFlater(DialogFragment.java:330)。支持v4.app。碎片android上的PerformGetLayoutFlater(Fragment.java:1308)。支持v4.app。碎片管理。android上的moveToState(FragmentManager.java:1460)。支持v4.app。碎片管理。android上的moveFragmentToExpectedState(FragmentManager.java:1784)。支持v4.app。碎片管理。android上的moveToState(FragmentManager.java:1852)。支持v4.app。回溯记录。android上的executeOps(BackbackRecord.java:802)。支持v4.app。碎片管理。android上的executeOps(FragmentManager.java:2625)。支持v4.app。碎片管理。android上的executeOpsTogether(FragmentManager.java:2411)。支持v4.app。碎片管理。android上的RemoveDundantoOperationsandExecute(FragmentManager.java:2366)。支持v4.app。碎片管理。android上的ExependingActions(FragmentManager.java:2273)。支持v4.app。FragmentManagerImpl 1美元。在android上运行(FragmentManager.java:733)。操作系统。处理程序。android上的handleCallback(Handler.java:907)。操作系统。处理程序。android上的dispatchMessage(Handler.java:105)。操作系统。活套。android上的loop(Looper.java:216)。应用程序。活动线程。java上的main(ActivityThread.java:7625)。郎。反思。方法在com上调用(本机方法)。Android内部的操作系统。RuntimeInit$MethodandArgscaler。在com上运行(RuntimeInit.java:524)。Android内部的操作系统。合子岩。main(ZygoteInit.java:987)

共有2个答案

邵弘致
2023-03-14

更改此行:

 RadioGroup radioGroup=getActivity().findViewById(R.id.radioGroup);

收件人:

RadioGroup radioGroup = view.findViewById(R.id.radioGroup);

无线电组在您的对话框中

淳于慎之
2023-03-14

因为放射组是自定义对话框的一个元素。xml然后您必须从自定义对话框的视图中找到RadioGroup。xml,请尝试以下代码

LayoutInflater layoutInflater=getActivity().getLayoutInflater();
View view=layoutInflater.inflate(R.layout.custom_dialog,null); //load custom_dialog.xml to View
...
RadioGroup radioGroup=view.findViewById(R.id.radioGroup);     //try to retrieve rarioGroup in custom_dialog.xml
 类似资料:
  • 问题内容: 我收到以下错误 尝试在空对象引用上调用虚拟方法’void android.widget.StackView.setAdapter(android.widget.Adapter)’ 在这条线上 完整的片段 EventsFragment.java 是 Stack_Adapter.java Stack_Items 问题答案: 您正在执行: 你是。返回。 你为什么用? 在哪里?您应该从正确的x

  • 我的应用程序有问题,想解决它,但我无法访问解决方案,请帮帮我,,

  • 我正在尝试创建一个回收视图,在instagram中以故事的形式显示一张图片。。我已经完成了所有工作,但代码仍然没有运行,并在com上告诉我一个错误。实例回收视图。适配器。com上的onBindViewHolder(Adapter.java:36)。实例回收视图。适配器。onBindViewHolder(Adapter.java:14) 公共类适配器扩展了RecyclerView。适配器{ }

  • 我正在尝试实现一个外部色轮,它应该出现在的片段一直在崩溃我的应用程序。我想我明白为什么会发生这种情况,但是在尝试修复它大约6个小时后,我就要放弃了。我知道之前有人问过这个问题,但是我无法为我的特定问题导出一个修复程序。下面是我的代码: 这是Logcat错误: 如果有人能帮我解决这个问题,那就太好了。提前谢谢^^ 编辑:这是我的XML,按要求:

  • 问题内容: 我尝试使用片段来打开数据库,但是,当我单击按钮开始搜索时,程序意外终止,并显示如下错误: 主片段: DBManager类: 顺便说一句,我在MainAcitivity中使用了有关DBManager的代码,并且成功了。将代码复制到上面的片段后,它失败了,该怎么办? 问题答案: 之前和之后你都做不到。 因为,您正在执行片段实例化时。该方法将始终返回null。另外,尽量不要将参考文献保留在您