我正在使用以下代码按id
;
setContentView(R.layout.golders);
for (int i=1; i<hm.size()+1;i++)
{
int id = getStringIdentifier("Bus"+i);
view = (TextView)findViewById(id);
view.setText(hm.get(i).toString());
}
我的getStringIdentifier()
正在运行,但当我尝试设置文字时,我收到了NullPointerException
。
我已使用setContentView
关注golders.xml
文件,该文件包含我想要更新的id
。
我已经尝试过清理项目,但是也没有做任何事情,任何想法?!谢谢!
编辑:
public int getStringIdentifier(String aString)
{
String packageName = "com.example.bustimetable.Robbos";
int resId = getResources().getIdentifier(aString, "string", packageName);
return resId;
}
答案 0 :(得分:1)
您的getStringIdentifier(String)
方法返回字符串ID(来自R.string
的内容)。您需要一种新的方法,例如getIdentifier(String)
,它将从R.id
返回soemthing。我无法看到XML,因此我不知道您的TextView
的ID是什么,但是......您要确认该ID实际上是Bus_
所在地_
是一些数字。
public int getIdentifier(String aString)
{
String packageName = "com.example.bustimetable.Robbos";
int resId = getResources().getIdentifier(aString, "id", packageName); // Get from R.id, not R.string
return resId;
}
答案 1 :(得分:0)
问题是getStringIdentifier()
正在返回字符串资源的id。显然,返回的id不是视图资源的有效ID。即使是,我也不知道你怎么能保证你会得到你想要的观点。您需要添加另一个方法来返回视图资源的id,或者修改您拥有的方法以便它返回字符串或视图资源的id