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.xmlid

プロジェクトのクリーニングを試しましたが、何も実行されていません。アイデアはありますか?!ありがとう!

編集:

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)からsoemthingを返す、のような新しいメソッドが必要ですR.id。XMLが表示されないので、あなたのIDが何であるかはわかりませんTextViewが、... 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 に答える