Android 当我按下按钮从对话框返回活动时,我的应用程序不断崩溃
问题源于可单击的确定按钮。当我点击按钮时(在编辑文本中存在/不存在文本和数字的情况下),应用程序停止工作。我似乎找不到这个错误的来源。我仔细检查了正在初始化的变量,问题似乎并不是由此产生的。有人能帮忙吗 代码如下:Android 当我按下按钮从对话框返回活动时,我的应用程序不断崩溃,android,android-dialog,Android,Android Dialog,问题源于可单击的确定按钮。当我点击按钮时(在编辑文本中存在/不存在文本和数字的情况下),应用程序停止工作。我似乎找不到这个错误的来源。我仔细检查了正在初始化的变量,问题似乎并不是由此产生的。有人能帮忙吗 代码如下: public void mInput(View view){ final Dialog dialogManualInput = new Dialog(this); dialogManualInput.setContentView(R.layout.dialog_A
public void mInput(View view){
final Dialog dialogManualInput = new Dialog(this);
dialogManualInput.setContentView(R.layout.dialog_A);
dialogManualInput.setTitle("Title");
et1 = (EditText) dialogManualInput.findViewById(R.id.item);
et2 = (EditText) dialogManualInput.findViewById(R.id.price);
et3 = (EditText) dialogManualInput.findViewById(R.id.quantity);
m_adapter = new ArrayAdapter<String>(this,R.layout.activity_A,m_listItems);
checkoutList = (ListView)findViewById(R.id.listview);
checkoutList.setAdapter(m_adapter);
dialogManualInput.show();
Button okButton = (Button) dialogManualInput.findViewById(R.id.ok);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String input_1 = et1.getText().toString();
String input_2 = et2.getText().toString();
String input_3 = et3.getText().toString();
int int_1 = Integer.valueOf(et3);
int int_2 = Integer.valueOf(et2);
String input = "("+et2+") " + et1 +" "+ (int_1*int_2);
if((null!=input_1)&&(null!=input_2)&&(null!=input_3)){
m_listItems.add(input);
m_adapter.notifyDataSetChanged();
}
dialogManualInput.dismiss();
}
});
}
编辑1: 从Logcat看来,问题是
m_adapter = new ArrayAdapter<String>(this,R.layout.activity_A,m_listItems);
checkoutList = (ListView)findViewById(R.id.listview);
checkoutList.setAdapter(m_adapter);
如果et1、et2、et3的NPE未正常初始化
或
分析这些中的异常(如果您没有填充editText,则它必须抛出异常)
问题可能在于您的布局。显示此XML文件“R.layout.activity_A”或者查看一下。请发布日志。我已经编辑并包含了日志。我打算用它将文本从编辑文本传递到ListView@user2766109选中编辑1仅当您正在传递布局id时,但它应该是列表中的TextView idview@user2766109一切正常,只需从布局它将显示为您预期的结果我已经尝试了一些级别的测试,似乎这行代码是崩溃的主要原因:
m_listItems.add(input)
No mate正如我所说更改你的id否则你会对这一行感到困惑它尝试添加文本调用adapter将文本与ListView的TextView绑定它从你给定的id中选择id这是一个布局而不是文本你必须有一个ListView的布局,其中可能有一个TextView,你应该作为id提供,但是你给出的布局id完全错误,导致崩溃,如果你不这样做;我不相信你想做什么就做什么
m_adapter = new ArrayAdapter<String>(this,R.layout.activity_A,m_listItems);
checkoutList = (ListView)findViewById(R.id.listview);
checkoutList.setAdapter(m_adapter);
ArrayAdapter<String>(this,R.layout.activity_A,m_listItems);
ArrayAdapter<String>(this,R.layout.activity_A,R.id.textView01);
String input = "("+et2+") " + et1 +" "+ (int_1*int_2);
int int_1 = Integer.valueOf(et3);
int int_2 = Integer.valueOf(et2);