1

私は、strings.xmlから動的に取得されるさまざまな文字列を使用してテキストビューのandroid:textを切り替えようとしています。ユーザーがグリッド上のボタンを押すと、一意の識別子が返されます。この識別子を使用して、文字列を代名詞textViewに動的にロードしたいと思います。

gridView.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
      TextView Pronoun = (TextView) findViewById(R.id.Prounoun);
      chosen = ((TextView) v).getText();
      //Inserts the identifier of what button was pressed into the local string chosen".
      Pronoun.setText("R.string.Pronoun_" + chosen);
   }
}

ボタン「a」が押されると、「chosen」は文字「a」を保持し、これを文字列命名形式「Pronoun_」に結合すると、「Pronoun_a」になります。意図は、この場所で文字列を呼び出すことでした。実際には、テキストはPronoun_aの実際の文字列コンテンツを取得するのではなく、文字通り「R.string.Pronoun_a」です。ボタン「b」が押された場合、「Pronoun_b」の文字列コンテンツをtextViewに表示したいと思います。私はJavaを初めて使用し、別の言語で学んだテクニックを再現しようとしているだけです。これを行う方法はありますか?

4

2 に答える 2

0

それ以外の

Pronoun.setText("R.string.Pronoun_" + chosen);

下の行を試してください

Pronoun.setText(ActivityName.this.getString(R.string.Pronoun_) ++ chosen);

アクティビティコンテキストで機能しますが、onclickでは、すでに作成している場合は変数を使用ActivityName.this. することもできます。contextここでActivityNameは、urコードが記述されているアクティビティ名です。

于 2013-02-07T18:24:40.310 に答える
0

これを(実際のパッケージ名で)使用します:

String resKey = "your.apps.package:string/Pronoun_"+chosen;
int resId = getResources().getIdentifier(resKey, null, null);
Pronoun.setText(resId);

APIドキュメントも参照してください。

注:AND_DEVで既に説明したように、を使用する必要がありますActivityName.this.getResources()

于 2013-02-07T19:21:07.640 に答える