尝试按ID查找字符串时为Nullpointer

时间:2012-11-06 02:54:07

标签: android findviewbyid

我正在使用以下代码按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;
      }

2 个答案:

答案 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