1

ヘッダーテキストを設定するためのメソッドを含む抽象クラスがあります。次のようになります。

TextView header = (TextView) findViewById(R.id.hTitle);
header.setText(getString(this.getHeaderStringID()));

現時点では、抽象getHeaderStringID()をオーバーライドするメソッドは、0x7f040001のような整数を返します。1これを実現するために、連結を利用する方法があるのか​​、それとも似たような方法があるのだろうか。

header.setText(getString(R.string.!getHeaderStringID!));

必要な場合、getHeaderStringIDは「sAboutHeader」のような文字列を返します

2私はJavaを初めて使用します-ヘッダーオブジェクトの作成を取り除くことはできますか?それができない場合、Eclipseバリデーターは、適切なメソッドが見つからないと言って、アプリを起動できません。

4

1 に答える 1

1

私があなたを正しく理解していれば、リフレクションを使用する必要があると思います:

try {
        Field idField = R.String.class.getDeclaredField(getHeaderStringID());
        int value = idField.getInt(idField);
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    } 

value 変数は getString() 関数への入力として与えることができます。

于 2012-04-06T10:58:59.410 に答える