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.usedialog.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);