Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onActivityResult()未被调用?_Java_Android_Android Intent_Android Activity - Fatal编程技术网

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"));
            }
        }
    }