gpt4 book ai didi

java - 由于整数赋值导致的 Android 迭代错误

转载 作者:行者123 更新时间:2023-12-01 13:20:20 26 4
gpt4 key购买 nike

我正在尝试迭代 26 个 TextView (字母表中的每个字母一个)。以下是我尝试过的方法,但出现以下错误:

java.lang.NumberFormatException: Invalid int: "R.id.A"".

我知道问题是我如何分配整数,但不知道如何纠正。

private void setupKeyBoard() {

for(char letter = 'A'; letter <= 'Z';letter ++){

int letterID = Integer.parseInt("R.id."+ letter); //This line is my issue
Log.e("LetterID", Integer.toString(letterID));

final TextView textView = (TextView) getView().findViewById(letterID);

textView.setTextSize(20 * getResources().getDisplayMetrics().density);
textView.setText(letter);
final char finalLetter = letter;

textView .setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
checkGuess(finalLetter);
textView.setClickable(false);
textView.setAlpha((float) .1);
}
});
}
}

最佳答案

Integer.parseInt 不是您要查找的内容。

您想要实现的目标可以使用 getIdentifier 来完成:

int letterID = getResources().getIdentifier(String.valueOf(letter), "id", getPackageName());

请注意,这相当慢。您最好的选择可能是将这些 id 存储在 int 数组中并循环遍历它。

int[] arr = {R.id.A, R.id.B, ... };

for(char letter = 'A'; letter <= 'Z';letter ++){
final TextView textView = (TextView) getView().findViewById(arr[letter-'A']);
.....
}

关于java - 由于整数赋值导致的 Android 迭代错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22074716/

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