Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有gettext和editText的空指针_Android_Android Edittext_Android Alertdialog_Gettext_Tostring - Fatal编程技术网

Android 带有gettext和editText的空指针

Android 带有gettext和editText的空指针,android,android-edittext,android-alertdialog,gettext,tostring,Android,Android Edittext,Android Alertdialog,Gettext,Tostring,我是新手,我整天都在寻找解决方法,你能帮我吗 我试图在字符串中输入我在警报对话框中设置的EditText protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add); LayoutInflater li = LayoutInflater.from(thi

我是新手,我整天都在寻找解决方法,你能帮我吗

我试图在字符串中输入我在
警报对话框中设置的
EditText

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add);

        LayoutInflater li = LayoutInflater.from(this);
        View alert = li.inflate(R.layout.alert, null);

        AlertDialog.Builder addUser = new AlertDialog.Builder(this);
        addUser.setView(alert);
        addUser.setTitle("...");
        addUser.setMessage("...");
        addUser.setCancelable(false);
        addUser.setPositiveButton(R.string.btNext, new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int id) {
        Final EditText getName = (EditText) findViewById(R.id.inUsName);
        String uName = getName.getText().toString(); //NullPointerException
                acept(v);
            }
        });
        addUser.setNegativeButton(R.string.btCancel, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                cancel();
            }
        });
        addUser.show();
    }
}

EditText
ID是正确的,我在alert.xml中有所有组件(不是活动默认xml)

你觉得有什么不对劲吗?我确信这不是一个优化的或格式良好的代码(这是我第一次尝试android)


非常感谢。

检查
null

final EditText getName = (EditText) dialog.findViewById(R.id.inUsName);
String uName = getName.getText()!=null? getName.getText().toString(): null;

更改此代码。您必须提供inflater.findviewbyId,就像在碎片中一样:

Final EditText getName = (EditText) findViewById(R.id.inUsName);
为此:

final EditText getName = (EditText) li.findViewById(R.id.inUsName);

如果布局活动上有EditText,则必须创建

Final EditText getName;
在活动中添加getname

getname = (EditText) findViewById(R.id.inUsName);
然后将字符串添加到AlertDialog

String uName = getName.getText().toString();


您的编辑文本不在已膨胀的视图警报的一部分中 使用

而不是

 Final EditText getName = (EditText) findViewById(R.id.inUsName);

我可以假定
Final EditText
应该是
Final EditText
吗?您的帖子中有错误吗?无论哪种方式,
Final EditText getName=(EditText)findViewById(R.id.inUsName)正在尝试从对话框视图而不是主布局视图获取id为inUsName的编辑文本。这就是为什么它返回null.use
dialog.findByView
(或
alert.findByView
,其中alert被声明为final)我也尝试过它,但同样的问题,我get方法无法解决findViewById(int)在final EditText getName=(EditText)alert.findViewById(R.id.inUsName)结尾处的findViewById(int);字符串uName=getName.getText().toString();系统输出打印LN(uName);最终视图警报=li.充气(R.layout.alert,null);谢谢大家!你在几分钟内就得到了它。空值不是从这里来的是你的观点是正确的空值是从这里来的,因为getName是空的。我已经编辑了答案。与问题无关。有一种观点认为,这种观点是找不到的。防止应用程序崩溃只会将问题隐藏在地毯下。如果我在findViewById()之前使用li(layoute充气),我会得到一个erroruse对话框。findViewById(R.id.inUsName);我以前尝试过,我在findViewById()中遇到此错误“无法解决方法”
 Final EditText getName = (EditText)alert.findViewById(R.id.inUsName);
 getName.getText().toString();// will not give nullpoint exception 
 Final EditText getName = (EditText) findViewById(R.id.inUsName);