【问题标题】:Why is my activity only running once?为什么我的活动只运行一次?
【发布时间】:2012-01-05 14:30:55
【问题描述】:

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

};

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

【问题讨论】:

  • 发布一些代码。并检查您的日志猫,看看是否有任何类型的错误被抛出。如果也有发布堆栈跟踪。
  • 对不起,我在完成之前不小心发布了它,代码现在已经启动。我会在一秒钟内发布 logcat。
  • 你需要在 if 语句之前记录 search.isPressed() 和 searchPressed 并查看它们的值
  • 哦...我现在感觉真的很愚蠢...我忘记设置 searchPressed = false 在它的条件不再需要之后...@Lumis 发表您的评论作为答案。
  • 不,我只是在按下它后在某处设置 serachPressed = true 来修复它。我只是忘了这样做...:/

标签: android android-activity switching


【解决方案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 布尔值的地方。

【讨论】:

    【解决方案2】:

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

    所以任一条件

    search.isPressed()
    

    或条件

    searchPressed == false
    

    不正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 2020-12-27
      • 2015-04-10
      相关资源
      最近更新 更多