为什么我的活动只运行一次?

时间:2012-01-05 14:30:55

标签: android android-activity switching

我让这个应用程序从一个活动转到另一个活动。然后回来,但在它回到我的主要活动之后再次进入下一个视图的按钮没有做任何事情?我认为这是来自startActivityForResult,但我做了一个不同的方式,它仍然没有工作......

这是一些代码:如果按下按钮

if (search.isPressed() && searchPressed == false) {
            // show search list
            switch1 = new Intent(MainActivity.this, SearchActivity.class);
            // startActivityForResult(switch1, 0);
            startActivity(switch1);
        }

在下一个活动中:

private OnItemClickListener listListener = new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        String text = (String) ((TextView) arg1).getText();
        String[] selected = text.split(" - ");
        selected[0] = selected[0].replace(' ', '_');
        Log.w("COMPANY", selected[0]);
        Log.w("PART", selected[1]);

        // Intent data = new Intent(SearchActivity.this,
        // MainActivity.class);
        // data.putExtra("key", selected);
        // setResult(RESULT_OK, data);
        MainActivity.searchData = selected;

        finish();

        // startActivity(switch2);
    }

};

//// \当推送项目时,它会返回主屏幕

2 个答案:

答案 0 :(得分:1)

我对您到目前为止发布的内容的猜测是,您实际上遇到了麻烦,因为if语句,而不是startActivity()。

尝试在if语句中输入日志输出:

if (search.isPressed() && searchPressed == false) {
        Log.d(TAG, "Search has been pressed");
        // show search list
        switch1 = new Intent(MainActivity.this, SearchActivity.class);
        // startActivityForResult(switch1, 0);
        startActivity(switch1);
 }

如果你没有在log cat中看到你的输出,那么问题在于if语句。如果你发布了更多的代码,如果我可以尝试帮助你找到它。但似乎你的情况是矛盾的。对我来说,看起来你正在检查是否按下了按钮而没有按下。

发布更多的MainActivity代码,特别是在设置了searchPressed布尔值的地方。

答案 1 :(得分:0)

第一部分代码中的两个条件之一将在第一次失败后失败。

所以要么条件

search.isPressed()

或条件

searchPressed == false

不是真的