Java onActivityResult()未被调用?
我有一个Java onActivityResult()未被调用?,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我有一个main活动,它有两个TextView。用户可以选择启动另一个活动,并从列表视图中选择数据来填充这些文本视图。我的主要活动有一个OnClickListener,它启动一个activity,用户可以从中选择数据并返回到主要活动。我的OnClickListener代码如下所示: private static final int PICK_START = 0; private static final int PICK_END = 1; @Override public void on
main活动
,它有两个TextView
。用户可以选择启动另一个活动,并从列表视图
中选择数据来填充这些文本视图
。我的主要活动有一个OnClickListener
,它启动一个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方法后,它将启动另一个活动SList.class。我有一个列表视图,用户可以从中选择值,选择值后,将设置结果,活动将自行完成。代码如下:
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();
}
});
我不知道为什么onActivityResult从未被触发。甚至有人
他在博客上写道,android API中存在漏洞。在里面
startActivityForResult(意图、请求代码)代码>此函数不起作用
只要requestCode=0
。但是,如果您将请求代码更改为
如果不是零,ApiDemos将失败(以及onActivityResult()
不会被调用。我找到了问题的解决方案。我只需要重新启动eclipse,我的代码就开始工作。我的活动中有3个不同的请求代码-0、10、11。它们在API 10-17上都工作得很好。这不应该是个问题。你能提供到该博客的链接吗?是onItemClick()
名为??在该方法中显示日志,以验证是否调用了它。关于requestCode,我已经用requestCode=1000试过了,1001…等等works@Houcine是的,它被调用,活动自行完成,上一个活动变为visible@Archie.bpgc很抱歉,该链接现在不可用,因为它是一个谷歌集团链接,由于大量垃圾邮件,谷歌已经采取了它down@Archie.bpgc它只能是0或1。您可以看到我上面的代码。有趣的解决方案:)有趣的Eclipse
@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"));
}
}
}