我是新手,我整天都在寻找解决办法,你能帮我吗?
我试图在字符串中获取一个 EditText
我在 AlertDialog
中设置
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 中拥有所有组件(不是 Activity 默认 xml)。
你有没有发现什么问题?我确定它不是经过优化或格式正确的代码(这是我的第一个 Android 尝试)。
非常感谢。
最佳答案
更改此代码。您必须像在 fragment 中一样提供 inflater.findviewbyId :
Final EditText getName = (EditText) findViewById(R.id.inUsName);
对此:
final EditText getName = (EditText) li.findViewById(R.id.inUsName);
关于android - 带有 gettext 和 editText 的空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24190236/