Как создать классы в android-studio для использования одного и того же корневого макета, но с другим текстом, отображаемым в TextViews

#java #android #android-intent #xml-layout

#java #Android #android-намерение #xml-layout

Вопрос:

Я новичок, и это мое первое приложение. Я создаю приложение, которое будет отображать пользовательский текстовый вид в mainActivity.xml например, Музыка, затем пользователь может щелкнуть текстовое представление «музыка» (через intent), и оно переходит к другому действию, где отображаются несколько других текстовых представлений. например, рэп, поп, рок, панк… на каждый из этих просмотров можно щелкнуть (с намерением), и это снова приведет к другому действию, где отображаются различные поджанры, скажем, рок, и пользователь может щелкнуть по одному из них, а затем он покажет несколько текстовых просмотров с названием песен этого жанра, и при нажатии окончательное намерение приведет пользователя к приложению Youtube. «Проблема» в том, что мне нужно создать новый класс и новое действие для каждого жанра, создать текстовое представление с идентификатором в xml-макете, определить намерение в классе с помощью setOnClickListener и перейти к другому действию. Если я сделаю это для каждого жанра, мне может понадобиться более 200 классов и макетов для всего приложения. Есть ли какой-нибудь способ создать xml с одним корневым макетом, и просто в каждом классе использовать этот макет, но с другим текстом в текстовых представлениях. Также могу ли я как-то уменьшить количество классов, необходимых для этого?

Я пытался с помощью ArrayList<> добавить текст в текстовые представления, но я не могу найти идентификатор, чтобы я мог вызвать намерение.

Комментарии:

1. Вы создаете одно действие и макет, передаете параметр через намерение, которое запускает его, чтобы решить, что показывать, и изменяете текст представлений во время выполнения в Activity. Это своего рода базовое программирование, если вам нужна помощь на этом уровне, я бы посоветовал вам обратиться к наставнику (что выходит за рамки этого сайта).

Ответ №1:

Вы можете отправлять данные через intent, а затем устанавливать эти данные в текстовое поле

В вашей активности отправителя

 Intent myIntent = new Intent(this, GenreClass.class);
myIntent.putExtra("genre","rock");
startActivity(myIntent);
  

В активности получателя

  Intent myIntent = getIntent(); 
 String genre = myIntent.getStringExtra("genre");
 myTextView.setText(genre)