How do I get the int id value from R. for an id? When I use getIdentifier
its just returns 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());
Edit
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>
log
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;
getIdentifier, is to obtain resources dynamically. The are many use cases, for example if you have several resources with the same name ending with a numeric index, then you could make a for loop and autogenerate the name dynamically, so "my_red_box_1", "my_red_box_2", etc.
Regardless of the type of resource, all Android resources are identified by their IDs in Java source code. The syntax for ID in the XML file is called resource-reference syntax.
Resources are the additional files and static content that your code uses, such as bitmaps, layout definitions, user interface strings, animation instructions, and more.
Just checked back in a project I'm writing right now:
int id = getResources().getIdentifier("resourcename", "drawable", getPackageName());
getResources
returns int
.
UPDATE: Check R.array.drawerSelection_array
to include only ID's of existing elements.
The problem appears to be that you are converting drawerSelection
to lower case. As is clear in the R.java file, the case of the identifier is preserved. Try calling:
int panelId = this.getResources().getIdentifier(drawerSelection,"id",getActivity().getPackageName());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With