edittext setvisibility给出空异常

edittext setvisibility giving null exception

我正在尝试将我的 edittext 设置为在打开对话框时隐藏,但是当我选中复选框时它应该可见...此拨号盘在我的选项选择菜单中 不幸的是我收到了这个例外

07-31 15:23:31.129: E/AndroidRuntime(4143): FATAL EXCEPTION: main 07-31 15:23:31.129: E/AndroidRuntime(4143): java.lang.NullPointerException 07-31 15:23:31.129: E/AndroidRuntime(4143): at com.EVS.homeautomation.MainActivity.onOptionsItemSelected(MainActivity.java:1153)

这是代码

 final Dialog dialog = new Dialog(MainActivity.this);
            dialog.setContentView(R.layout.testing);
            dialog.setTitle("Configurations");

            final EditText up_num=((EditText)findViewById(R.id.unum));
            up_num.setVisibility(View.VISIBLE);
           CheckBox cb= ((CheckBox) findViewById(R.id.checkBox1));
            cb.setOnCheckedChangeListener(new OnCheckedChangeListener()
            {
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
                {
                    if ( isChecked )
                    {
                        up_num.setVisibility(View.VISIBLE);
                        // perform logic
                    }
                    else
                    {
                        up_num.setVisibility(View.GONE);
                    }

                }
            });

您正在使 Dialog.So 中的 EditText 无效 您必须使用这种方式初始化此 EditText:

EditText up_num=((EditText) dialog.findViewById(R.id.unum));

谢谢

首先你必须膨胀视图然后你可以调用setContentView()

所以你可以试试:

final Dialog dialog = new Dialog(MainActivity.this);

LayoutInflater inflater1 = this.getLayoutInflater();

        final View customview = inflater1.inflate(
                R.layout.testing, null);
dialog.setContentView(customview);

            dialog.setTitle("Configurations");

            final EditText up_num=((EditText)findViewById(R.id.unum));
            up_num.setVisibility(View.VISIBLE);
           CheckBox cb= ((CheckBox) findViewById(R.id.checkBox1));
            cb.setOnCheckedChangeListener(new OnCheckedChangeListener()
            {
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
                {
                    if ( isChecked )
                    {
                        up_num.setVisibility(View.VISIBLE);
                        // perform logic
                    }
                    else
                    {
                        up_num.setVisibility(View.GONE);
                    }

                }
            });

希望对您有所帮助:)