2

次の配列を取得しました。ギャラリーを埋めるには:

private Integer[] mImageIds = { R.drawable.one, R.drawable.two,
            R.drawable.three, R.drawable.four, R.drawable.five,
            R.drawable.six, R.drawable.seven, R.drawable.eight,
            R.drawable.nine, R.drawable.ten, R.drawable.elevan,
            R.drawable.twelve, R.drawable.thirteen, R.drawable.fouteen,
            R.drawable.fifteen, R.drawable.sixteen
    };

そして、ギャラリーのクリックイベントを使用しています:

coverFlow.setOnItemClickListener(new OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView arg0, View v, int position,
         long rowID) {
             String s = mImageIds[position].toString();
             Toast.makeText(v.getContext(), s , 1000).show();
         }
         });

しかし、ここで Toast は整数2130837507を返します。

ToastでmImageIds[position]のみを取得した場合

次に、パスres/drawable-mdpi/image_name.jpgを表示しますが、実際には文字列ではありません。そして、そこから文字列 (image_name) を取得したいと思います。誰でも私を助けることができますか?

4

1 に答える 1

4

返された数値に対して toString を実行しないでください。質問のタイトルが示すように、リソース ID から文字列が必要な場合は、次のようにします。

getResources().getString(mImageIds[position]);

ただし、質問のタイトルではありませんが、画像名が必要なようです。その場合、これは機能するはずです:

getResources().getResourceEntryName(mImageIds[position]);
于 2012-06-21T15:15:41.547 に答える