我是新手,我整天都在搜索解决它,你能帮助我吗?
我正在尝试使用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中的所有组件(不是活动默认的xml)。
非常感谢。
答案 0 :(得分:2)
更改此代码。你必须像碎片一样提供inflater.findviewbyId:
Final EditText getName = (EditText) findViewById(R.id.inUsName);
对此:
final EditText getName = (EditText) li.findViewById(R.id.inUsName);
答案 1 :(得分:1)
检查null
值。
final EditText getName = (EditText) dialog.findViewById(R.id.inUsName);
String uName = getName.getText()!=null? getName.getText().toString(): null;
答案 2 :(得分:0)
如果EditText在Layout activity_add上,则必须创建
Final EditText getName;
在活动中添加getname
getname = (EditText) findViewById(R.id.inUsName);
然后将String添加到AlertDialog
String uName = getName.getText().toString();
或
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Message");
// Create TextView
final TextView input = new TextView (this);
String uName = getName.getText().toString();
input.setText(uName);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do something with value!
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
答案 3 :(得分:0)
您的Edittext不属于您已夸大的查看提醒 使用
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);