今日は面白い問題に直面しました。私は4つの文字列をランダムに表示する必要があります。だから私は単純に文字列を私のstring.xmlに追加し、テキストを表示するようにテキストビューを設定していました。Androidでリフレクションを使用する
textView.setText(R.string.text_1);
又は(乱数2である場合)
textView.setText(R.string.text_2)。
上
ので、私はそう今field.get(ヌル)が、実際にID(16進数を返す反射
Class c = Class.forName("com.startpage.mobile.R$string");
Field field = c.getDeclaredField("text_"+num); //num is 1/2/3/4 System.out.println("**** "+field.get(null));
を使用してみましたが、変更はちょうど最後の文字であることを観察しましたR.java)の値ではなく、文字列の値として期待しています。
リフレクションを使用して文字列の実際の値を取得する方法はありますか?これはAndroidと一緒に暮らす必要がありますか?
素晴らしい。これは(System.out.printlnはをworked- "**********" + getResources()。getString((Integer)field.get(null))); – Kamal