1

次のコードがあります。

dataAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
    public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
        if (view.getId() == R.id.listitem_exercise_image) {
            String image_1 = cursor.getString(columnIndex);
            Log.d("MyApp", "image_1 = " + image_1);
            int resourceId = getResources().getIdentifier(image_1 , "drawable", getPackageName());
            Log.d("MyApp", "image_1 id = " + String.valueOf(resourceId));
            return true;
        }

        return false;
    }
});

現在、ログでは、これが my に表示されていLog.dます:

12-30 23:34:04.995: D/MyApp(8354): image_1 = abdominal_4_point_drawing_in_1.png
12-30 23:34:05.015: D/MyApp(8354): image_1 id = 0
12-30 23:34:05.165: D/MyApp(8354): image_1 = alternate_hammer_curl_1.png
12-30 23:34:05.195: D/MyApp(8354): image_1 id = 0
12-30 23:34:05.325: D/MyApp(8354): image_1 = alternate_incline_dumbbell_curl_1.png
12-30 23:34:05.335: D/MyApp(8354): image_1 id = 0

これで、これらの .png ファイルはすべて「drawable」フォルダーに存在します。それらは間違いなくそのフォルダーにあります。私はそれらをそのフォルダーにドロップした人であり、再確認しただけなので、これを知っています。Project Clean も実行しました。

では、リソース ID が 1 つごとに 0 になるのはなぜでしょうか?

4

1 に答える 1

5

リソース識別子は で終わらず".png"、拡張子が取り除かれ、その他の変換が行われます。を生成するリソースがimage_1どこにでもあれば、それは機能します。"abdominal_4_point_drawing_in_1"R.drawable.abdominal_4_point_drawing_in_1

于 2012-12-30T23:45:39.293 に答える