我是Android的新手,我正在尝试制作一个Hangman游戏,但我遇到了问题(就像在,我无法解决如何)访问以编程方式创建的TextView。
我已经搜索了SO和其他地方,并且有很多设置ID使用textView.setId(View.generateViewId());
的API前后方法或者创建一组ID资源并分配它们,但是没有& #39; t帮助我,因为我不知道每回合会创建多少视图(随机选取一个单词,每个字母创建TextViews )。
目前我正在创建如下视图:
private void createViewsForLetters(List<String> letters) {
for (String letter : letters) {
TextView textView = new TextView(this);
textView.setId(View.generateViewId());
textView.setText(letter);
textView.setTextSize(50);
textView.setLetterSpacing(0.5f);
textView.setVisibility(View.INVISIBLE); //Will become visible on successful entry
linearLayout.addView(textView);
Log.v("HMmsg: TV ID's", String.valueOf(textView.getId()));
}
}
哪个注销了TV ID's: 1, 2, 3, 4, 5
。
理想情况下,我希望能够获取用户的字符输入,并检查它是否在随机字被分割成的字母数组中(我已经完成了在下面,但获取该索引号所代表的TextView的ID ,以便我可以使用它再次显示相应的字母...... HANGMAN!
我正在使用它(它按原样工作)来验证用户条目:
private void actionUserEntry(List<String> letters) {
if (currentLetter.isEmpty()) {
Toast.makeText(getApplicationContext(), "You must enter something!", Toast.LENGTH_LONG).show();
} else {
if (letters.toString().contains(currentLetter)) {
Log.v("HMmsg", currentLetter + " is in the word");
linearLayout.setBackgroundColor(Color.GREEN);
//TODO capture generated viewId to setVisibility on correct entry
} else {
Log.v("HMmsg", currentLetter + " is NOT in the word");
linearLayout.setBackgroundColor(Color.RED);
}
}
}
所以我只需要在上面的代码中对TODO提供一些帮助,如果你愿意的话!
谢谢=)