【问题标题】:Android studio: Button onClick() not workingAndroid工作室:按钮onClick()不起作用
【发布时间】:2018-08-02 04:42:17
【问题描述】:

我的主 Activity 上有两个按钮,它们都应该指向另一个 Activity,但是当我按下按钮时,它不会改变任何东西。

我的清单中包含所有三个活动:

 <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".UserActivity"
        android:label="@string/app_name">
    </activity>
    <activity
        android:name=".ModeratorActivity"
        android:label="@string/app_name">
    </activity>

我的主要活动中两个按钮的方法:

private void setUserTypeOnButtonClick(){
    Button userButton = findViewById(R.id.button_user);
    Button moderatorButton = findViewById(R.id.button_moderator);

    userButton.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            System.out.println("Clicked userbutton");
            Intent newActivity = new Intent(v.getContext(), UserActivity.class);
            startActivity(newActivity);
        }
    });


    moderatorButton.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            System.out.println("Clicked moderatorbutton");
            Intent newActivity = new Intent(v.getContext(), ModeratorActivity.class);
            startActivity(newActivity);
        }
    });
}

这里有什么问题?我遗漏了什么吗?

【问题讨论】:

  • 用问题分享你的整个活动代码和xml布局
  • 出现什么错误?
  • 你在哪里调用这个setUserTypeOnButtonClick()方法?
  • 在onCreate中调用setUserTypeOnButtonClick方法
  • @Iaalto 我讨厌我的生活。

标签: android button android-activity onclick


【解决方案1】:

编辑:解决方案只是
onCreate()方法中调用setUserTypeOnButtonClick()

@Override
protected void onCreate(Bundle savedInstanceState) {
    System.out.println("Created activity_main");
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setUserTypeOnButtonClick();
}

【讨论】:

  • 但是主持人按钮是针对主持人活动的,而用户按钮是针对用户活动的?
  • @squeezyPig 您只是忘记在您的OnCreate() 中调用您的setUserTypeOnButtonClick()
【解决方案2】:

您忘记在onCreate() 中的setContentView() 之后调用setUserTypeOnButtonClick() 方法。

setContentView() 确实使按钮可见,但没有发生单击侦听器绑定,因此按钮不执行任何操作。

【讨论】:

    【解决方案3】:

    您只需在 onCreate 方法中调用 setUserTypeOnButtonClick()

    【讨论】:

      【解决方案4】:

      你只是忘记在 onCreate() 中调用setUserTypeOnButtonClick() 方法

      【讨论】:

        【解决方案5】:
        • 您忘记调用方法 getUserTypeOnButtonClick()。
        • ToggleButton 无法转换为 Button。
        • 还有 ModeratorActivity 和 UserActivity OnBackPressed 只需调用 finish()。

        【讨论】:

          猜你喜欢
          • 2020-08-08
          • 2012-03-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-10
          • 1970-01-01
          • 2020-12-19
          • 1970-01-01
          相关资源
          最近更新 更多