#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)