Как разместить Textviews в массиве и findViewById?

Я боролся с этой проблемой два дня и до сих пор не могу найти решение, я думаю, что мои базовые знания ООП бедны.

Теперь я объявил о двадцать TextView , и я хочу знать, есть ли способ хранить TextView в массиве и findViewById ?

Я попытался использовать массив, например:

 public class MainActivity extends Activity { private TextView name, address; LinkedHashMap<Integer, TextView> demo = new LinkedHashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int temp; allTextview = new TextView[]{name, address}; for(int i=0; i<allTextview.length; i++){ temp = getResources().getIdentifier(allTextview[i], "id", getPackageName()); allTextview[i] = (TextView)findViewById(temp); } }} 

Этот метод вызывает «имя» и «allTextview [0]» не указывает на тот же объект. Я также использую это решение , но все тот же.

Я думаю, причина в том, что «имя» и «адрес» были только что объявлены, а еще не указывают на какой-либо объект, как я могу его решить?

Я хочу использовать for loop для findViewById , и я могу использовать как «name», так и «allTextview [0]», чтобы что-то сделать с TextView .

Спасибо за помощь, и, пожалуйста, извините моего бедного английского.

Вам нужно сделать другой массив String чтобы использовать его для getIdentifier .

Вот XML

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Name"/> <TextView android:id="@+id/address" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Address"/> </LinearLayout> 

И файл Actvity

 public class TestActivity extends Activity{ private String[] id; private TextView[] textViews = new TextView[2]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.testactivity); int temp; id = new String[]{"name", "address"}; for(int i=0; i<id.length; i++){ temp = getResources().getIdentifier(id[i], "id", getPackageName()); textViews[i] = (TextView)findViewById(temp); textViews[i].setText("Text Changed"); } } 
Intereting Posts
Получение файла каталога и ClassLoader для игры в стиле libGDX Как сохранить Hashmap для Android, чтобы он был повторно использован при перезапуске приложения с использованием общих настроек? Как установить комбинированный цвет для перекрываемой области двух разных цветовых объектов? Утечка памяти в WebView Как убить конкретную деятельность? Изменение позиции просмотра после окончания анимации Не удалось создать или очистить голый проект одного действия в недавно установленной студии Android Android Adapter "java.lang.IndexOutOfBoundsException: недопустимый индекс 4, размер 4" Идентификатор устройства для эмулятора Android Java JNI против Android NDK Завершить все экземпляры конкретной деятельности Android – Ошибка в памяти. Когда он работает на реальном устройстве Установка проекта Android Kotlin не выполняется с помощью INSTALL_FAILED_DEXOPT Повторное использование кода TextView в Android XML Объединение java и nodejs для приложения для Android