Обработка Views.IDs & Drawable.Ints в цикле - PullRequest
0 голосов
/ 19 апреля 2011

Ну, это моя первая тема здесь, но это не должно иметь значения.

Мой вопрос: как я могу обрабатывать представления с одинаковыми идентификаторами (например, R.id.View1, View2, View3, ..) в цикле и как я могу дать каждому из них различное изображение из моего нарисованного ресурса (пример: R.drawable.pic1, pic2, pic3, ..)?

Я еще не нашел ответа на этот вопрос, хотя я не знал, что искать в Google: P.

Чтобы вы лучше поняли мою тему, вот мой код:

    <LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="492px"
    >

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <ImageView
            android:id="@+id/puzzletile_r1_c1"
            android:layout_width="82px"
            android:layout_height="82px"
            />
        <ImageView
            android:id="@+id/puzzletile_r1_c2"
            android:layout_width="82px"
            android:layout_height="82px"
            />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <ImageView
            android:id="@+id/puzzletile_r2_c1"
            android:layout_width="82px"
            android:layout_height="82px"
            />
        <ImageView
            android:id="@+id/puzzletile_r2_c2"
            android:layout_width="82px"
            android:layout_height="82px"
            />
    </LinearLayout>
</LinearLayout>

В этом файле много других Linear & ImageViews, но я удалил их для лучшего обзора.

package fast.games.puzzleme;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

    public class GameActivity extends Activity{

        // Declare variable for checking if the custom Title is supported
        boolean customTitleSupported;

        public void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);

               setContentView(R.layout.playground);

        }
    }

Моя общая идея заключалась в следующем:

for(i = 0; i<= 10; i++){
Imageview iv = (ImageView)this.findViewById(R.id.pic_+i);
iv.setImageResource(R.drawable.img_+i)
}

Думал, что так не работает>. <</p>

Есть ли способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 19 апреля 2011

Вы не можете сгенерировать идентификаторы просмотра подобным образом, но вы можете findViewByTag() и указать android:tag в файле Play.XMLНо есть способ получить идентификатор ресурса по имени.Просто позвоните по номеру getResources().getIdentifier("img_" + i, "drawable", getPackageName()), и вы получите img_xxx идентификатор drawable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...