java - 按钮仅在相继使用时才有效

标签 java android

所以我在一项 Activity 中有多个按钮,而且我只能一个接一个地使用它们。我读过我需要对 (OnClickListener) 部分做一些事情,但我不确定做什么或如何做。任何帮助是极大的赞赏。代码如下:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main2Activity extends AppCompatActivity {

private Button B3;
private Button B4;
private Button B5;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    B3 = findViewById(R.id.button3);

    B3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            moveToDanceScheduleMenu();
        }
    });
}
private void moveToDanceScheduleMenu () {

    Intent intent = new Intent(Main2Activity.this, DanceScheduleMenu.class);
    startActivity(intent);

    B4 = findViewById(R.id.button10);

    B4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            moveToWhatsOn();
        }
    });
}
private void moveToWhatsOn () {

    Intent intent = new Intent(Main2Activity.this, WhatsOn.class);
    startActivity(intent);

    B5 = findViewById(R.id.button11);

    B5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            moveToMainResultsMenu();
        }
    });
}

编辑:感谢大家目前提供的所有帮助,所以当我回家时我会测试这些。它们看起来与我读过的非常相似,所以它们应该可以工作..谢谢!

最佳答案

您正在按顺序设置点击监听器。如果您希望所有按钮随时可单击,请将监听器移至 onCreate() 中:

protected void onCreate() {
    B3.setOnClickListener(){};
    B4.setOnClickListner(){};
    // etc.
}

点击监听器就是这样——它“监听”点击。例如,您的 B3 是创建 Activity 时唯一监听的按钮,因此所有其他按钮都会忽略您对它们的点击。单击 B3 时,将调用 moveToDanceScheduleMenu() 并且 B4 开始监听。

我希望这能让事情变得更清楚。

<小时/>

完整代码:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main2Activity extends AppCompatActivity {
    private Button B3;
    private Button B4;
    private Button B5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        B3 = findViewById(R.id.button3);
        B3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                moveToDanceScheduleMenu();
            }
        });

        B4 = findViewById(R.id.button10);
        B4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                moveToWhatsOn();
            }
        });

        B5 = findViewById(R.id.button11);
        B5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                moveToMainResultsMenu();
            }
        });
    }
    private void moveToDanceScheduleMenu () {
        Intent intent = new Intent(Main2Activity.this, DanceScheduleMenu.class);
        startActivity(intent);
    }

    private void moveToWhatsOn () {
        Intent intent = new Intent(Main2Activity.this, WhatsOn.class);
        startActivity(intent);
    }
}

关于java - 按钮仅在相继使用时才有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659739/

相关文章:

java - 如何检查android中事件的更新?

Javascript 弹出功能

android - 在自动更新的情况下,Google Play 是否要求像内置权限一样接受自定义权限

java - 无法生成跨平台 javaFX 应用程序

Java - 使用Thread而不是SwingWorker

java - 在 RecyclerView 中的指定元素上显示 float 操作按钮

android - Android 中的多路复用热点

java - Android MVP : What is an Interactor?

android - 标签 View 可以在 fragment 中使用吗

java - 格式化日期异常(exception)