解决方案:为对应Button设置点击事件
方案一:在Activity中为按钮添加点击事件
startServiceButton.setOnClickListener(this)
方案二:在布局文件中为按钮添加点击时调用的方法
<Button
android:id="@+id/stopServiceButton"
...
android:text="stopService" />
页面布局只有两个按钮,Activity如下,希望点击两个按钮时能够显示Toast但是运行时并没有达到预期效果
public class ServiceActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.startServiceButton:
Toast.makeText(this, "startService...", Toast.LENGTH_SHORT).show();
break;
case R.id.stopServiceButton:
Toast.makeText(this, "stopServiceButton...", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
发现问题如下:页面中的两个Button并没有设置点击事件,想当然以为Activity实现了OnClickListener之后,点击对应页面就能调用onClick方法处理点击事件,其实并不是…
修改之后的代码如下,能够实现目标效果。
public class ServiceActivity extends Activity implements View.OnClickListener {
Button startServiceButton;
Button stopServiceButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_service);
startServiceButton = findViewById(R.id.startServiceButton);
stopServiceButton = findViewById(R.id.stopServiceButton);
startServiceButton.setOnClickListener(this);
stopServiceButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.startServiceButton:
Toast.makeText(this, "startService...", Toast.LENGTH_SHORT).show();
break;
case R.id.stopServiceButton:
Toast.makeText(this, "stopServiceButton...", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}


博客围绕Android中Button点击事件展开,指出页面布局有两个按钮,原以为实现后点击能调用方法处理事件,但实际未达预期,原因是按钮未设置点击事件。给出两种解决方案,一是在Activity中添加点击事件,二是在布局文件中添加点击调用方法,修改代码后实现目标效果。

902

被折叠的 条评论
为什么被折叠?



