Android工作室:按钮onClick()不起作用

Posted

技术标签:

【中文标题】Android工作室:按钮onClick()不起作用【英文标题】:Android studio: Button onClick() not working 【发布时间】: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 我讨厌我的生活。 【参考方案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()。

【讨论】:

以上是关于Android工作室:按钮onClick()不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android:更改背景颜色查看 onClick 按钮

Android recyclerview onclick 单选按钮

按钮onclick无法在第一次单击时工作

我的Android进阶之旅------&gt;Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法

Android 小部件按钮 Onclick Toast 消息

带有 Bootstrap 的按钮 OnClick 事件在 iOS 上不起作用