【问题标题】:edittext setvisibility giving null exceptionedittext setvisibility 给出空异常
【发布时间】:2015-07-31 18:35:50
【问题描述】:

当我打开对话框时,我试图将我的编辑文本设置为隐藏,但是当我选中复选框时,它应该会变得可见......这个对话框在我的选项选择菜单中 不幸的是我得到了这个例外

07-31 15:23:31.129: E/AndroidRuntime(4143): 致命异常: 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);
                    }

                }
            });

【问题讨论】:

  • 你的 up_num 为 null ,尝试添加 up_num=((EditText)findViewById(R.id.unum));当你 setVisibility() 。在您的情况下,您应该在每次想要 setVisibility 时找到 EditText 。

标签: android android-edittext android-dialog


【解决方案1】:

您正在使对话框中的 EditText 无效。因此您必须使用这种方式初始化此 EditText:

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

谢谢

【讨论】:

    【解决方案2】:

    首先你必须给视图充气然后你可以打电话给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);
                        }
    
                    }
                });
    

    希望对你有帮助:)

    【讨论】:

    • 感谢兄弟如此详细的回复.. :) 但是 Md. Sajedul Karim 的解决方案更简单:)
    猜你喜欢
    • 2015-04-23
    • 2014-09-06
    • 2014-07-19
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多