[英]Nullpointer with gettext and editText
我是新手,我整天都在搜索解決它,你能幫助我嗎?
我正在嘗試在一個String中加入一個我在AlertDialog
設置的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嘗試)。
非常感謝。
更改此代碼。 你必須像碎片一樣提供inflater.findviewbyId:
Final EditText getName = (EditText) findViewById(R.id.inUsName);
對此:
final EditText getName = (EditText) li.findViewById(R.id.inUsName);
檢查null
值。
final EditText getName = (EditText) dialog.findViewById(R.id.inUsName);
String uName = getName.getText()!=null? getName.getText().toString(): null;
如果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();
您的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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.