java - 如何创建一个类以在单击图像按钮时显示一次吐司消息?
问题描述
我的应用程序上有多个图像按钮,我希望它在单击每个按钮时显示一条吐司消息。但是在我的代码中,我不喜欢一遍又一遍地为每个图像按钮设置连续的 toast 消息的想法。有没有办法像在课堂上一样缩短这些消息,如果可以的话,我该怎么做?注意:我不希望吐司消息出现的唯一一个是客房服务按钮。
我的代码:
public class MainMenu extends AppCompatActivity {
private ImageButton roomservice, transportation, foodservice, maintenance, checkout, baggagecollection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_menu);
getSupportActionBar().setTitle("MainMenu");
roomservice = (ImageButton) findViewById(R.id.roomservice);
transportation = (ImageButton) findViewById(R.id.transportation);
foodservice = (ImageButton) findViewById(R.id.foodservice);
maintenance = (ImageButton) findViewById(R.id.maintenance);
checkout = (ImageButton) findViewById(R.id.checkout);
baggagecollection = (ImageButton) findViewById(R.id.baggagecollection);
roomservice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openRoomServiceMenu(); // creates main menu method name
}
});
transportation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainMenu.this, "This action is unavailable", Toast.LENGTH_LONG).show();
}
});
foodservice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainMenu.this, "This action is unavailable", Toast.LENGTH_LONG).show();
}
});
maintenance.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainMenu.this, "This action is unavailable", Toast.LENGTH_LONG).show();
}
});
checkout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainMenu.this, "This action is unavailable", Toast.LENGTH_LONG).show();
}
});
baggagecollection.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainMenu.this, "This action is unavailable", Toast.LENGTH_LONG).show();
}
});
}
解决方案
如果它只是在单击时显示 toast,我不建议创建全新的 ImageView 类。您可以做的是创建新类型的单击侦听器,它将实现 View.OnClickListener 并将字符串或字符串资源作为构造函数参数。之后覆盖 onClick 在您的新点击侦听器中并在那里显示吐司。最后将视图的点击监听器设置为新创建的类,并在要在 toast 中显示的构造函数中传递字符串。这样,如果您想与按钮或其他类型的视图具有相同的功能,您将不会被迫创建新类型的类。
推荐阅读
- r - 如何在 for 循环中设置向量?
- jwt - DocuSign - JWT 配置中的签名部分
- c - 将文本文件中的数字推送到链接列表中
- flutter - Flutter 从有状态小部件向另一个有状态小部件传递数据和调用方法
- json - 解析 JSON 时需要运行时错误“424”对象
- git - 为什么 git log --find-object 会为给定的 blob 获取两个具有不同内容的文件提交?
- css - css .fieldWrapper 类在哪里定义?(在 Django 文档中引用)
- docker - 如何将变量从 .gitlab.ci.yml 传递到 Dockerfile
- javascript - JavaScript 提示输入
- javascript - Babel 将字符串转译为 es2015