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

Android 为什么我的活动只运行一次?,android,android-activity,switching,Android,Android Activity,Switching,我让这个应用程序从一个活动转到下一个活动。然后再回来,但是在它回到我的主要活动之后,再次转到下一个视图的按钮没有任何作用?我以为这是startActivityForResult的结果,但我用了另一种方式,它仍然不起作用 下面是一些代码:如果按下按钮 if (search.isPressed() && searchPressed == false) { // show search list switch1 = new Intent(

我让这个应用程序从一个活动转到下一个活动。然后再回来,但是在它回到我的主要活动之后,再次转到下一个视图的按钮没有任何作用?我以为这是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);
    }

};
private-OnItemClickListener-listListener=new-OnItemClickListener(){
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
字符串text=(字符串)((TextView)arg1.getText();
所选字符串[]=text.split(“”);
所选[0]=所选[0]。替换(“”,“”);
Log.w(“公司”,选择[0]);
Log.w(“部分”,选择[1]);
//意向数据=新意向(SearchActivity.this,
//主要活动(课堂);
//数据。putExtra(“键”,选中);
//设置结果(结果正常,数据);
MainActivity.searchData=已选择;
完成();
//星触觉(开关2);
}
};

////\当项目被按下时,它会返回到主屏幕

根据您目前发布的内容,我猜测您实际上遇到了问题,是因为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);
 }
如果您没有在日志cat中看到输出,那么问题在于If语句。如果你发布更多的代码,如果我能帮你解决的话。但你的情况似乎有矛盾。在我看来,您正在检查搜索是否同时按下和未按下


多发布一点MainActivity代码,尤其是设置了searchPressed布尔值的地方。

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

所以无论哪种情况

search.isPressed()
searchPressed == false
或条件

search.isPressed()
searchPressed == false

不正确

发布一些代码。并检查您的日志猫,看看是否有任何类型的错误被抛出。如果有从那也张贴堆栈跟踪。对不起,我不小心张贴之前,我做了代码现在是。我马上发布logcat。您需要在if语句之前记录search.isPressed()和searchPressed,并查看它们的值。。。我现在觉得自己很笨。。。我忘记设置searchPressed=false,因为它的条件不再需要了@Lumis将您的评论作为答案发布。不,我只是在按下serachPressed=true后的某个地方设置了它。我只是忘了做…:/