gpt4 book ai didi

android xml引用不适用于带有静态数组的开关和大小写

转载 作者:行者123 更新时间:2023-11-30 04:21:43 25 4
gpt4 key购买 nike

我试图通过循环浏览我的 xml 中的按钮(因为我有很多按钮)来让我的生活变得更轻松。为什么这不起作用?

Button bf[];
public static final int[] Buttons = { R.id.b1, R.id.b2, R.id.b3, R.id.b4,
R.id.b5, R.id.b6, R.id.b7, R.id.b8, R.id.b9, R.id.bBack,
R.id.bClearAll, R.id.bClear };

我有一个 static final int 包含我的一些按钮,它在标题中列出。在我的 onCreate 方法中,我设置了我的按钮:

for (int i = 1; i < 10; i++) {

bf[i] = (Button) findViewById(Buttons[i - 1]);
bf[i].setOnClickListener(this);
}

很好很简单吧?但是当我尝试在 switch 和 case 中引用它们时(在我实现的 onClickListener 方法中,我遇到了问题:

for (int i = 1; i < 10; i++) {
case Buttons[i-1]:
Toast.makeText(this, bf[i].getText(), Toast.LENGTH_SHORT).show();
break;
}

这行不通,所以我只尝试了一个引用:

switch (v.getId()) {
case Buttons[0]:
Toast.makeText(this, bf[1].getText(), Toast.LENGTH_SHORT).show();
break;

哪个也不起作用?!?!请帮忙?

最佳答案

v 是您在 onClickListener 中的 View ,对吗?你为什么不使用:

Button b = (Button) v;
Toast.makeText(this, b.getText(), Toast.LENGTH_SHORT).show();

其他几点:

  • 您没有发布完整的代码,但我想您可以将 Buttons 数组更改为私有(private)。
  • 可能你甚至不需要 bf[]

编辑:另外,我建议使用这个 for 循环循环遍历所有按钮,使其更加灵活:

for (int i : Buttons) {
Button b = findViewById(i);
b.setOnClickListener(myClickListener);
}

关于android xml引用不适用于带有静态数组的开关和大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com