我有一个editText和按钮。按下按钮,它会启动listView活动。单击listView中的项目,它将关闭该活动并将editText设置为单击的项目。
但是如果你进入listView并单击一个项目点击后退按钮,它就会崩溃。我想我需要在onPause中做一些事情,但不确定这是不是最好的方法。
listView,点击项目时......
Intent intent = new Intent();
Bundle b = new Bundle();
b.putString("TEXT", ((TextView) view).getText().toString());
intent.putExtras(b);
setResult(SUCCESS_RETURN_CODE, intent);
finish();
... onActivityResult
Bundle b = data.getExtras();
mEditCategory.setText(b.getString("TEXT"));
答案 0 :(得分:3)
您收到例外情况:data
为null
,因为您的活动未返回结果。
默认情况下,后退键将结束活动而不设置结果。检查resultCode
参数onActivityResult
以查看是否因为点击了列表项而返回了子活动:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == SUCCESS_RETURN_CODE) {
// TODO handle data here from list item click
}
}
如果活动明确返回,resultCode
将为RESULT_CANCELED
,在其操作期间未返回任何结果或崩溃(请参阅docs for Activity)。