0

我正在使用下面的代码来查找资源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的 s 的文件。id

我试过清理项目,但也没有做任何事情,有什么想法吗?!谢谢!

编辑:

public int getStringIdentifier(String aString)
    {
        String packageName = "com.example.bustimetable.Robbos";
        int resId = getResources().getIdentifier(aString, "string", packageName);
        return resId;
      }
4

2 回答 2

1

您的getStringIdentifier(String)方法返回一个字符串 ID(来自 的内容R.string)。你需要一个新方法,比如getIdentifier(String),它会从R.id. 我看不到 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;
}
于 2012-11-06T03:08:27.607 回答
0

问题是getStringIdentifier()返回字符串资源的 id。显然,返回的 id 不是视图资源的有效 id。即使是,我也不知道你怎么能保证你会得到你想要的视图。您需要添加另一种方法来返回视图资源的 id,或者修改您拥有的方法,以便它返回字符串或视图资源的 id

于 2012-11-06T03:11:45.157 回答