就像标题所说,我从EditText获取文本时遇到问题。
我的应用在读取此行时崩溃:
字符串值= aux.getText()。toString(); ,可能因为aux.getText()为null仍然有setText(“lol”),在此方法
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.adicionar:
//Toast.makeText(this, "This is the Toast message", Toast.LENGTH_LONG).show();
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText input = new EditText(this);
LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout dialerLayout = (LinearLayout) layoutInflater.inflate(R.layout.input, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
dialerLayout.setLayoutParams(params);
alert.setView(dialerLayout);
alert.setPositiveButton("Adicionar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
aux = (EditText)findViewById(R.id.cadeira);
aux.setText("lol");
String value = aux.getText().toString();
//String value2="TESTE";
lista.add(value);
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancelar",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
return true;
default: return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:1)
可能“aux”为空。
正如我从您的代码中假设的那样,“cadeira”EditText位于您膨胀的LinearLayout中。但是当你执行“findViewByById”时,它会搜索主布局。因此你应该尝试:
aux = (EditText) dialerLayout.findViewById(R.id.cadeira);
答案 1 :(得分:0)
这可能是因为.toString()
! getText()
的结果将是一个字符串,因此toString()
可能会导致其崩溃。
答案 2 :(得分:0)
声明或初始化“aux”,可能会出现人为错误,但您没有显示错误的错误日志措辞, 如果你能详细说明,这将更快地解决问题。