相关疑难解决方法(0)

使用Android getIdentifier()

我试过这个:

r = Resources.getSystem().getIdentifier("ball_red","drawable","com.Juggle2");
Log.i("FindBall","R = "+r);
Run Code Online (Sandbox Code Playgroud)

还有这个:

r = Resources.getSystem().getIdentifier("com.Juggle2:drawable/ball_red", null, null);
Run Code Online (Sandbox Code Playgroud)

但'r'总是最终为零.

我从一个不是Activity的助手类中调用这一行,并且不会扩展任何东西,所以我不能简单地调用getResources(),但我可以从我的传递它SurfaceView.

最终,我想"ball_red"用变量替换,但首先是第一件事.这不起作用.

com.Juggle2确实是我的包名.drawableres它所在的文件夹,确实是文件的名称ball_red.

R.java说:

        public static final int ball_red=0x7f020027;
Run Code Online (Sandbox Code Playgroud)

所以我不确定它为什么不起作用.


所以我不能使用资源,我必须传递一个上下文,我这样做:在这里:

class Collection extends SurfaceView implements SurfaceHolder.Callback {
Run Code Online (Sandbox Code Playgroud)

我正在创建我的类的新实例并将其getContext()作为参数传递.

java android

50
推荐指数
2
解决办法
7万
查看次数

java android getResources().getIdentifier()

如何从R获取id的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());
Run Code Online (Sandbox Code Playgroud)

编辑

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>
Run Code Online (Sandbox Code Playgroud)

日志

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
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

java android

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

android ×2

java ×2