Переменная в findViewByID - Android Studio - Java - PullRequest
0 голосов
/ 16 июня 2020

Я программирую в Android Studio и пытаюсь запрограммировать игру «ножницы, камень, бумага». Теперь я программирую рекорд, где пользователи могут видеть записи в виде списка из 10 элементов.

Чтобы вставить имена игроков в этот список, я вставляю значения в Textview с помощью:

TextView tempField = findViewById(R.id.playerName1);
tempField.setText(sharedpreferences.getString("name" + i, ""));

Потому что это 10 элементов, и мне нужно вставить 3 значения для каждого элемента I хотел бы сделать это с помощью for-l oop. Проблема в том, что я не могу просто поставить переменную с номером после R.id.playerName. Я пробовал:

for(int i = 0; i < 10; i++){
   TextView tempField = findViewById("R.id.playerName" + i);
   tempField.setText(sharedpreferences.getString("name" + i, ""));
}

1 Ответ

0 голосов
/ 16 июня 2020

Вы можете создать массив любого объекта, вам просто нужно пройти по массиву с помощью al oop, чтобы назначить их атрибуты.

Чтобы создать пример, давайте посмотрим на некоторые вещи:

Насколько я понимаю, у вас есть 3 разных значения, которые вам нужно установить для каждого TextView. Я предполагаю, что вы ищете формат, похожий на X: Name - Score. Я бы использовал for l oop, чтобы установить три разных массива, чтобы ваши значения были локальными, но также чтобы вам было легче использовать их в другом l oop, если вы еще этого не сделали.

После этого я бы настроил его примерно так:

TextView[] myTextViews = new TextView[10];

for (int tv = 0; tv < 10; tv++){

    myTextViews[tv] = new TextView(this);
    myTextViews[tv].setText(array1[tv] + ": Name:" + array2[tv] + "- Score:" array3[tv]); //per the format I mentioned above.
    parentView.addView(myTextViews[tv]);

}

Где array1, array2 и array3 - это 3 значения, которые вы упомянули в своем вопросе.

Это способ инициализации каждого TextView и его атрибутов на каждой итерации. Вы можете поместить это в метод, чтобы вы могли обновлять его каждый раз при создании новой игры, et c et c.

...