В моем проекте у меня есть 80 TextViews. Я должен установить свой текст от 1 до 80 после запуска проекта, и в будущем их не нужно менять. За исключением TxtViews, у меня есть некоторые другие вещи в моем макете, TextViews находятся под ImageViews. на самом деле у меня есть 80 обращений к изображениям и под ними 80 TextViews. Я хочу, чтобы текст textViews был от 1 до 80 динамически. Я знаю, что могу сделать это в моем layout.xml, , но его действительно много времени. есть ли способ сделать это по коду? например, для цикла или что-то в этом роде?Настройка текста TextView
ответ
Если они имеют один и тот же макет, кроме текста, и могут отображаться в виде списка, вы можете использовать ArrayAdapter и передать значения из кода.
Дорогой Трагалун, я не хочу писать цифры от 1 до 80. Таким образом, я должен сделать то же самое. –
Вы также можете написать свой массив из цикла: string [] testArray = новая строка [80]; для (int i = 1; i
Исправления для вышеуказанного кода: String [] testArray = new String [80]; \t \t для (INT I = 0; г
Если TextView
s объявлены на XML, обернуть их на другой точке зрения, так что вы можете ссылаться на него в коде Java позже, а затем просто использовать for
.
Что-то вроде:
View view = findViewById(R.id.your_wrapper);
for(int i=0; i<((ViewGroup)view).getChildCount(); i++) {
View nChild = ((ViewGroup)view).getChildAt(i);
TextView tv = (TextView) nChild;
tv.setText(String.valueOf(i + 1));
}
Если нет, то вы можете просто создать их динамически внутри кода Java, и добавить их в макет, как LinearLayout
.
Пример:
XML
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linear"
/>
Java код
LinearLayout ll = (LinearLayout) findViewById(R.id.linear);
for (int i = 1; i <= 80; i++) {
TextView tv = new TextView(this); // Assuming you're inside an Activity.
int count = ll.getChildCount();
tv.setText(String.valueOf(i));
ll.addView(tv, count, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
}
EDIT: Но действительно, вы должны у se RecyclerView
или ListView
для этого, если ваши значения не будут изменены.
Вы можете узнать больше о RecyclerView
here, а также о ListView
here.
Второе редактирование: Из того, что вы говорите на ваши комментарии, вы действительно должны использовать ListView
вместо текущего дизайна. Решения выше и из других ответов не будут работать вообще для вашей проблемы.
Создать ViewGroup подходящий для ваших нужд в макете, например:
<LinearLayout
android:id="@+id/linear_layout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
Затем вы создаете вас TextView экземпляров программно, и добавить их к LinearLayout, как это:
LinearLayout layout = (LinearLayout)findViewById(R.id.linear_layout);
for(int i = 0; i < 80; i++) {
TextView textView = new TextView(getContext());
textView.setText("text" + i);
layout.addView(textView);
}
При желании вы можете добавить теги или что-то еще, чтобы найти их снова. Альтернативно просто перебирайте подматрицы макетов.
За исключением TxtViews, у меня есть некоторые другие вещи в моем коде, поэтому я не могу использовать это, я думаю. –
Ну, это гораздо более удобное решение, каковы ваши ограничения? – Kenneth
TextViews находятся под ImageViews. на самом деле у меня есть 80 изображений, которые видят под ними 80 TextViews. Я хочу, чтобы текст textViews был от 1 до 80 динамически. –
Если вы знаете, что исправлено 80 Textview, тогда вы должны взять список для этого.
ListView Benefit
- Управление памятью автоматически
- ListView управления индексирование
заказ в приведенном ниже примере,
public class MainActivity extends Activity {
LinearLayout linearLayout ;
ScrollView scrollView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollView = (HorizontalScrollView) findViewById(R.id.scrollViewActivityMain);
}
private void populateTextViews() {
linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
//add all textViews here
for(int i=0; i < 80; i++){
TextView myTextView = new TextView(this);
myTextView.setText("My TextView "+i);
myTextView.setGravity(Gravity.CENTER);
linearLayout.addView(myTextView);
}
scrollView.addView(linearLayout);
}
}
Не забудьте положить, что Scrollview в ваш xml. Дайте мне знать, если это сработает для вас ...
За исключением TxtViews, у меня есть некоторые другие вещи в моем коде, TextViews находятся под ImageViews. на самом деле у меня есть 80 изображений, которые видят под ними 80 TextViews. Я хочу, чтобы текст textViews был от 1 до 80 динамически. –
Для отображения большого количества изображений на одном экране, я думаю, что здесь вы ищете ListView/RecyclerView, иначе приложение будет разбиваться, если мы сделаем это так, как указано выше. –
. Заполните эту ссылку, я уверен, что это то, что вы ищете ... Http: //www.mkyong.com/android/android-listview-example/ –
- 1. Настройка вложенного текста TextView
- 2. Настройка цвета для текста внутри TextView Android
- 3. Настройка текста в TextView во время выполнения
- 4. Настройка текста TextView в Android в цикле
- 5. Настройка текста для TextView в ListActivity
- 6. Выравнивание текста текста TextView
- 7. Настройка текста текста в коде
- 8. Перетаскивание текста TextView в TextView
- 9. Настройка текста заголовка NavigationView
- 10. Цвет текста текста TextView Text
- 11. Настройка содержимого TextView из HTML отключает часть текста
- 12. Настройка текста для TextView не работает должным образом
- 13. Android: настройка текста EditText/TextView на кнопке Нажмите
- 14. Настройка внешнего вида текста android TextView в Java-коде
- 15. Исключение Null Pointer - настройка текста TextView внутри программно созданного макета
- 16. Настройка textView через службу
- 17. Настройка TextView включённого макета
- 18. Настройка текста текста текста TextView с помощью setTextColor() отображает андроид: duplicateParentState недействителен
- 19. Настройка текста текста из статического внутреннего класса
- 20. Настройка текста датского символа
- 21. Смещение текста TextView смежным смежным TextView
- 22. Установить часть текста TextView?
- 23. Изменить цвет текста TextView
- 24. Обтекание текста внутри TextView
- 25. TextView в выравнивание текста
- 26. Изменение текста TextView/editText
- 27. Изменение текста в TextView
- 28. Центрирование текста в Textview
- 29. Выберите часть TextView текста
- 30. Цвет текста TextView
u можете использовать для петли? или отправить ur код, как u hv done – KOTIOS
У вашего 'TextView' есть идентификаторы? Если они это сделают, вы можете это сделать. Но имейте в виду, что для вызова 'findViewById (id)' потребуется много раз, и эта операция очень трудоемка. Пожалуйста, пересмотреть настройку значений в XML. –
Вы должны написать отдельную простую программу для генерации файла layout.xml –