【问题标题】:When clicking a button the listener doesn't work单击按钮时,侦听器不起作用
【发布时间】:2019-05-17 10:32:03
【问题描述】:

当点击退出按钮时,它不会将活动交换到家庭活动,我尝试通过创建 toast 来测试它是否有效,但 Toast 也没有显示。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button signout, missions, profile;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        firebaseUser = firebaseAuth.getCurrentUser();
        signout = (Button)findViewById(R.id.SignOut);
        signout.setOnClickListener(this);
        missions = (Button)findViewById(R.id.Missions);
        missions.setOnClickListener(this);
        profile = (Button)findViewById(R.id.profileBtn);
        profile.setOnClickListener(this);

    }

    public void onClick(View v) {

        switch(v.getId())
        {
            case R.id.SignOut:
            {

                Intent i = new Intent(this, HomeActivity.class);
                startActivity(i);
                break;
            }
            case R.id.profileBtn:{

            }
            case R.id.Missions:{

            }


        }
    }

}

然而,当我点击退出按钮时,它并没有切换到主页活动。

【问题讨论】:

    标签: android android-button


    【解决方案1】:

    如果你想结束这个 MainActivity,你可以在开始这个 Activity 之后调用finish。 喜欢,

    Intent i = new Intent(this, HomeActivity.class);
    startActivity(i);
    finish();
    break;
    

    【讨论】:

      【解决方案2】:

      试试这个方法。

      signout.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Intent i = new Intent(this, HomeActivity.class);
                      startActivity(i);
                  }
              });
      

      【讨论】:

        【解决方案3】:

        在 onClick 方法上方添加 @Override 并删除 {} 框架案例:-

        @Override
        public void onClick(View v){
        
                switch(v.getId())
                {
                    case R.id.SignOut:
                        Intent i = new Intent(this, HomeActivity.class);
                        startActivity(i);
                        break;
        
                    case R.id.profileBtn:
                    break;
        
                    case R.id.Missions:
                     break;
        
        
                }
            }
        

        并将您的 id 与您在 xml 文件中定义的 id 匹配

        【讨论】:

        • 在这种情况下,只需清除并重建并清除缓存并重新启动android studio
        • 复制这个并运行项目
        • 我将此复制到我的项目并运行它,但仍然没有运气。甚至清理、重建和重启 android studio
        • 从 android studio 卸载应用并清除缓存:- 文件 -> 使缓存无效/重新启动,然后安装应用并尝试
        • 你试过这个吗?
        猜你喜欢
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 1970-01-01
        • 2015-07-31
        • 1970-01-01
        • 2012-01-21
        • 2019-05-07
        相关资源
        最近更新 更多