1

私は次の設定をしています。私のxmlには、たくさんの画像ビューがあります。設定で設定された数と曜日に応じて、そのうちの1つだけを表示しようとしています。これは本当に簡単なはずですが、変数をfindViewByIDに渡す正しい方法がわかりません。コード スニペットは次のとおりです。

String groupName = "R.id."+prefs.getString("groupListKey", "<unset>")+"_"+(Calendar.getInstance().get(Calendar.DAY_OF_WEEK));

ImageView image = (ImageView) findViewById(groupName);
4

2 に答える 2

3

findViewById() は、リソース識別子を表す整数を渡す必要があります。あなたはそれに文字列を渡そうとしています

あなたの最善の策は、あなたの曜日を評価して適切な ID を返す条件ステートメントを持つことです。

 int resourceId = 0;
 switch (Calendar.getInstance().get(Calendar.DAY_OF_WEEK)) {
     case Calendar.SUNDAY:
         resourceId = R.id.sundayView;
         break;

     case Calendar.MONDAY:
         resourceId = R.id.mondayView;
         break;

     ...etc
 }

ImageView image = (ImageView) findViewById(resourceId);
于 2012-04-30T16:39:40.767 に答える
1

findViewByIdクラスintで生成された の 1 つである を引数として受け取ります。R.id

あなたのIDを持つ配列を持つことができます:

int[] imagesIds = new int[] { R.id.image1, ... R.id.image7 };

次に、条件に基づいてインデックスを決定します。

int imageIndex = ...
ImageView image = (ImageView) findViewById(imagesIds[imageIndex]);
于 2012-04-30T16:39:49.923 に答える