gpt4 book ai didi

java - onActivityResult() 没有被调用?

转载 作者:行者123 更新时间:2023-12-01 14:58:23 32 4
gpt4 key购买 nike

我有一个 MainActivity,它有两个 TextView。用户可以选择启动另一个 Activity 并从 ListView 中选择数据来填充这些 TextView。我的主要 Activity 有一个 OnClickListener,它启动一个 Activty,用户可以从中选择数据并返回主要 Activity 。我的 OnClickListener 代码如下所示:

private static final int PICK_START = 0;
private static final int PICK_END = 1;
@Override
public void onClick(View v) {
Log.i(MainActivity, "view clicked");
int id = v.getId();

if (id == R.id.searchR) {
//do nothing
} else if (id == R.id.startSearch) {
Intent startIntent = new Intent(this, SList.class);
startActivityForResult(startIntent, PICK_START);

} else if (id == R.id.endSearch) {
Intent startIntent = new Intent(this, SList.class);
startActivityForResult(startIntent, PICK_END);
}

}

当上面的 onClick 方法被调用并启动另一个 Activity SList.class 时。我有一个 ListView ,用户可以从中选择值,选择值后将设置结果并且 Activity 将自行完成。代码是:

sListview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Station selectedS = sArray.get(position);
Intent returnIntent = new Intent();
returnIntent.putExtra("_id", selectedS.getId());
returnIntent.putExtra("name", selectedS.getName());
setResult(RESULT_OK, returnIntent);
finish();
}
});

在上面的代码中, Activity 设置了结果并自行完成。直到这里一切都正常工作。但是之后,当启动前一个 Activity 时,onActivityResult()方法永远不会被调用。代码为onActivityResult() 是:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(MainActivity, "" + requestCode);

// Make sure the request was successful
if (resultCode == RESULT_OK) {
// Check which request we're responding to
if (requestCode == PICK_START) {
//data.getStringExtra("_id");
Log.i(MainActivity, data.getStringExtra("name"));

} else if (requestCode == PICK_END) {
Log.i(MainActivity, data.getStringExtra("name"));
}
}
}

我不知道为什么 onActivityResult 永远不会被触发。有人甚至 在他的博客上写道 Android API 存在错误。在 startActivityForResult(intent, requestCode); 这个函数确实有效 只要requestCode = 0。但是,如果您将请求代码更改为 任何非零的值,ApiDemos 都会失败(并且 onActivityResult() 不会被调用)。

最佳答案

我找到了问题的解决方案。我只需要重新启动 Eclipse,我的代码就开始工作。

关于java - onActivityResult() 没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038738/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com