2012-04-06 50 views
1

私は、ヘッダーテキストを設定するメソッドを含む抽象クラスを持っています。 0x7f040001のような抽象getHeaderStringID()の戻り整数をオーバーライドし、この瞬間の方法でAndroid文字列の抽出

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

:それは次のようになります。 1私はこれを達成するための連結またはある程度類似を利用する方法があるのか​​どうか疑問に思う:

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

たい場合getHeaderStringIDは「sAboutHeader」

2のような文字列を返すでしょう、私は、Javaに新たなんだ - 私はできヘッダオブジェクトの作成を取り除く。私がそういうことをしないと、eclipseバリデーターは適切な方法が見つからず、アプリを起動できないと言います。

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

値変数がのgetString()関数への入力として与えることができます:私が正しくあなたを理解していれば

答えて

1

は、私はあなたがリフレクションを使用する必要があることだと思います。

+0

これは今のように動作しますが、整数を返します。私がしたいのは、header.setText(getString(R.string。ここではR.stringに自分の文字列識別子を付加するいくつかの魔法があります))を達成するためには、それぞれのサブクラスに**文字列**の識別子を設定することです。 –

+0

一意の文字列をR.stringに付加すると、整数も返されます。 – Mark268