1. ホーム
  2. java

[解決済み] java android getResources().getIdentifier()

2022-03-11 13:37:24

質問

あるidについて、Rからint型のid値を取得するにはどうしたらいいですか?私は使用するとき getIdentifier を返すだけです。 0 .

 int i = getArguments().getInt(SELECTION_NUMBER);
 String drawerSelection = getResources().getStringArray(R.array.drawerSelection_array)[i];

int panelId = this.getResources().getIdentifier(drawerSelection.toLowerCase(),"id",getActivity().getPackageName());

編集

Xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/Bus_Schedules"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

</LinearLayout>

ログ

06-10 21:24:30.372: I/System.out(3572): Selection = Bus_Schedules
06-10 21:24:30.372: I/System.out(3572): panelId = 0

R.java

    public static final class id {
    public static final int Bus_Schedules=0x7f090004;
    public static final int basemenu=0x7f090005;
    public static final int content_frame=0x7f090001;
    public static final int drawer_layout=0x7f090000;
    public static final int left_drawer=0x7f090002;

解決方法は?

問題は、あなたが変換しているように見える drawerSelection を小文字に変換してください。R.java ファイルを見れば明らかなように、識別子の大文字と小文字は保存されます。呼び出してみてください。

int panelId = this.getResources().getIdentifier(drawerSelection,"id",getActivity().getPackageName());