java - 我是一个初学者,试图为java中的按钮制作一个点击监听器,你能帮我吗?
问题描述
我正在尝试在 Android Studio 中编译我的代码,代码在这里:
choice1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
if(choice1.getText().equals(result))
showToastMessage(true);
else
showToastMessage(false);
}
});
Android Studio 说所有的行都是非法的,并且不会在 android 模拟器中运行,因为它无法编译。有人可以帮我解决问题吗?
编辑:这是我在这个特定实例中使用的代码:
public class FullscreenActivity extends AppCompatActivity {
private String result = "New York";
private Button choice1 = (Button)findViewById(R.id.choice1);
private Button choice2 = (Button)findViewById(R.id.choice2);
private Button choice3 = (Button)findViewById(R.id.choice3);
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen);
}
choice1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
if(choice1.getText().equals(result))
showToastMessage(true);
else
showToastMessage(false);
}
});
choice2.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
if(choice2.getText().equals(result))
showToastMessage(true);
else
showToastMessage(false);
}
});
choice3.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
if(choice3.getText().equals(result))
showToastMessage(true);
else
showToastMessage(false);
}
});
}
private void showToastMessage(boolean showToastMessage)
{
if(showToastMessage)
Toast.makeText(this, "Correct", toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "Wrong", Toast.LENGTH_SHORT).show();
}
只是我不知道我正在学习的代码是否过时,我犯了一个错误或者无论如何,我只是想尽我所能学习它,因此我为什么要问。感谢所有回复的人!<3
解决方案
您必须在生命周期回调之一中放置一个单击侦听器。如果是活动,请将代码移至onCreate()
方法。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.filters);
choice1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
if(choice1.getText().equals(result))
showToastMessage(true);
else
showToastMessage(false);
}
});
}
如果是片段,则放入onViewCreated()
.
推荐阅读
- cron - 为特定用户创建 crontab
- html - 我们如何在 HTML/Angular 中为下拉菜单调用两个不同的函数?
- vuejs2 - 使用 google firebase、cordova、vuejs 登录时出错
- asp.net - 我的 SQL Server 密码每 10 分钟过期一次
- vba - 当新电子邮件包含某些文本时提示
- wpf - 根据当前选择的 TabItem 动态更改 TabItem 内 ListView 的 ItemsSource 属性
- python - 输入 0 与 flatten_2 层不兼容:预期 min_ndim=3,发现 ndim=2
- sql - Db2 中的嵌套联接
- azure - 您是否必须使用 Azure 数据工厂,还是只能使用 Databricks 作为来自多个来源的 ETL 工具?
- angular - Angular 2 - 带有自定义键字段的对象映射?