zoukankan      html  css  js  c++  java
  • Android中findViewById()获取EditText 空指针问题

     因为EditText editText = (EditText)layout.findViewById(R.id.input_content);是从Dialog对话框布局layout中寻找ID为input_content的子元素
       EditText editText = (EditText)this.findViewById(R.id.input_content);// 空指针错误    因为是从this对象即当前ListActivity的布局List_view.xml中寻找ID为input_content的子元素EditText,而我们在List_view.xml布局文件中并无定义此元素故空指针错误 ,并且我们的目的并不是这样。
    只要理解findViewById就行了。

    简单点讲:把你的findViewById改成Dialog的findViewById默认的是你的Activity的findViewById,这个肯定取不到EditText里面的值,肯定是空的。

    void addbtn() {
            ImageButton ib_add = (ImageButton) findViewById(R.id.addpoint);
            ib_add.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    LayoutInflater inflater = getLayoutInflater();
                    final View layout = inflater.inflate(R.layout.add_dialog,
                            (ViewGroup) findViewById(R.id.dialog));
                    new AlertDialog.Builder(PointMgrActivity.this)
                            .setTitle("请添加节点")
                            .setView(layout)
                            .setPositiveButton("确定",
                                    new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog,
                                                int which) {
                                            EditText et = (EditText)layout.findViewById(R.id.addID);
                                            String gID = et.getText().toString();
                                            
                                           
                                            Log.i(PointMgrActivity.ACTIVITY_TAG,
                                                    gID);
                                            
                                              String pStatu="OFF";
                                            Toast.makeText(
                                              PointMgrActivity.this,
                                             gID +
                                              "   " +pStatu,
                                              Toast.LENGTH_LONG).show();
                                             
                                        }
                                    })
                            .setNegativeButton("取消",
                                    new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog,
                                                int which) {
    
                                        }
                                    }).show();
                }
    
            });
    
        }
  • 相关阅读:
    Windows10下Opencv4+CMake+MinGW64+VSC安装教程
    相机标定问题-实践操作流程
    eNSP仿真学习,网络入门!
    SFTP服务的使用!!
    树莓派B+使用入门&RPI库安装&wringPi库安装
    Python基本语法初试
    基于51单片机+DAC0832的信号发生器
    各种标志位的含义
    根文件系统ramdisk.image.gz && uramdisk.image.gz
    Linux中/etc/inittab文件
  • 原文地址:https://www.cnblogs.com/NeilLing/p/4040056.html
Copyright © 2011-2022 走看看