【问题标题】:Why are the buttons not going to the next activity为什么按钮不转到下一个活动
【发布时间】:2023-04-03 06:26:02
【问题描述】:

由于某种原因,我的按钮没有做任何事情。我以前用这种方法来实现按钮,它从来没有给我一个问题。该应用程序有七个不同的按钮,它们都移动到不同的活动。

public class ScheduleActivity extends AppCompatActivity implements View.OnClickListener {
    private Button mondayButton,tuesdayButton,wednesdayButton,thursdayButton,fridayButton,saturdayButton,sundayButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_schedule);
        mondayButton = findViewById(R.id.monday_button);
        tuesdayButton = findViewById(R.id.tuesday_button);
        wednesdayButton = findViewById(R.id.wednesday_button);
        thursdayButton = findViewById(R.id.thursday_button);
        fridayButton = findViewById(R.id.friday_button);
        saturdayButton = findViewById(R.id.saturday_button);
        sundayButton = findViewById(R.id.sunday_button);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.monday_button:
                Intent monday_intent = new Intent(ScheduleActivity.this, MondayActivity.class);
                startActivity(monday_intent);
                break;
            case R.id.tuesday_button:
                Intent tuesday_intent = new Intent(ScheduleActivity.this, TuesdayActivity.class);
                startActivity(tuesday_intent);
                break;
            case R.id.wednesday_button:
                Intent wednesday_intent = new Intent(ScheduleActivity.this, WednesdayActivity.class);
                startActivity(wednesday_intent);
                break;
            case R.id.thursday_button:
                Intent thursday_intent = new Intent(ScheduleActivity.this, ThursdayActivity.class);
                startActivity(thursday_intent);
                break;
            case R.id.friday_button:
                Intent friday_intent = new Intent(ScheduleActivity.this, FridayActivity.class);
                startActivity(friday_intent);
                break;
            case R.id.saturday_button:
                Intent saturday_intent = new Intent(ScheduleActivity.this, SaturdayActivity.class);
                startActivity(saturday_intent);
            case R.id.sunday_button:
                Intent sunday_intent = new Intent(ScheduleActivity.this, SundayActivity.class);
                startActivity(sunday_intent);
        }
    }
}

【问题讨论】:

  • 可以分享一下布局吗

标签: java android android-intent onclicklistener start-activity


【解决方案1】:

您正在获取按钮的实例,但从未为它们设置 OnClickListener。您需要为按钮设置点击监听器:

mondayButton.setOnClickListener(this)

您需要对所有按钮执行此操作,这会告诉您的代码在单击按钮时通知事件的位置。

【讨论】:

  • 你能告诉我一个例子,我会把它放在我的代码中吗?
  • 所有按钮调用findViewById后就放了
【解决方案2】:

您没有将侦听器 View.OnClickListener 附加到您的任何按钮。 初始化按钮后,将其添加到您的 onCreate() 中,您的按钮将起作用

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_schedule);
        ...
        sundayButton = findViewById(R.id.sunday_button);

        // attaching listeners
        mondayButton.setOnClickListener(this);
        tuesdayButton.setOnClickListener(this);
        wednesdayButton.setOnClickListener(this);
        thursdayButton.setOnClickListener(this);
        fridayButton.setOnClickListener(this);
        saturdayButton.setOnClickListener(this);
        sundayButton.setOnClickListener(this);
   }

【讨论】:

    【解决方案3】:

    您必须在 OnCreate 方法上设置 view.setOnClickListener{}

    私人按钮 mondayButton,tuesdayButton,wednesdayButton,thursdayButton,fridayButton,saturdayButton,sundayButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_schedule);
        mondayButton = findViewById(R.id.monday_button);
        tuesdayButton = findViewById(R.id.tuesday_button);
        wednesdayButton = findViewById(R.id.wednesday_button);
        thursdayButton = findViewById(R.id.thursday_button);
        fridayButton = findViewById(R.id.friday_button);
        saturdayButton = findViewById(R.id.saturday_button);
        sundayButton = findViewById(R.id.sunday_button);
    
    
        mondayButton.setOnClickListener() {
        Intent intent = new Intent(...) ;
        startActivity(intent) ;
       } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多