1

でカスタム属性を作成しましたattrs.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="StarWars">
  <attr name="sw_jedi" format="string" />
  <attr name="sw_rank" format="string" />
</declare-styleable>

int 値を取得します (Rたとえば) ですが、属性( )R.styleable.StarWars_sw_jediを取得するにはどうすればよいですか?namejedi

より具体的に編集する:

Rからの値(intである)ではなく、属性の「名前」文字列が必要です:

たとえば、int (R.styleable.StarWars_sw_jediまたはR.attr.sw_jedi)ではなく「jedi」を取得したい

実際、私はgetAttributeName(R.styleable.StarWars_sw_jedi)

事前にt​​hx!

4

2 に答える 2

1

私はあなたと同じスタイルに取り組んできましたが、参考のために一度チェックしてください。

ステップ1:

res/values フォルダーにファイル attrs.xml を作成して、カスタム スタイルを作成します。

ここに attrs.xml があります

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="StarWars">
  <attr name="sw_jedi" format="string" />
  <attr name="sw_rank" format="string" />
</declare-styleable>
</resources>

で指定した形式を宣言しますres/values/strings.xml

   <string name="sw_jedi">Hi</string>
        <string name="sw_rank">Bye</string>

そして、Javaコードで使用すると

あいまいさなく動作します。

ジェダイの値を取得したい場合は、次のようにします

 String jedi=getResources().getResourceEntryName(StarWars_sw_jedi);
于 2013-02-21T15:44:31.997 に答える
1

なぜ見つからなかったのかわかりませんが、探していた関数はgetResourceEntryNameであり、実際に私が望むことを正確に実行します

私の場合、「ジェダイ」が必要な場合は次のようにします。

String name = getResources().getResourceEntryName(R.attr.sw_jedi);
于 2013-02-21T15:50:31.210 に答える