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 recyclerview onclick 单选按钮
我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法