我在尝试使用循环将视图放入arrayList时遇到了问题。
这有效:
String textV = "chkBox1Text";
int textI = getResources().getIdentifier(textV, "id", getPackageName());
TextView test = (TextView)findViewById(textI);
test.setText("Test 01");
但是这个
ArrayList<TextView> friendNames = new ArrayList<TextView>();
for(int i = 0; i < 10; i++){
String textViewID = "chkBox" + i+1 + "Text";
int current = getResources().getIdentifier(textViewID, "id", getPackageName());
TextView currentTV = (TextView)findViewById(current);
friendNames.add(currentTV);
}
friendNames.get(0).setText("Test 01"); // 0 or 1
返回空指针异常:
引起:java.lang.NullPointerException:尝试调用虚拟 方法'void android.widget.TextView.setText(java.lang.CharSequence)' 在null对象引用上 在 ******。FriendActivity.onCreate(FriendActivity.java:56)
我做错了什么吗?
答案 0 :(得分:0)
很难确认,但我认为你的问题可能是:
friendNames.add((TextView)findViewById(currentTV));
应该是:
friendNames.add(currentTV);
因为currentTV
已经是您在上一行中找到的TextView。
答案 1 :(得分:0)
Rookie Mistake,
String textViewID = "chkBox" + i+1 + "Text";
应该是
String textViewID = "chkBox" + (i+1) + "Text";
感谢Mike M