В приложении Android, как вы запускаете новое действие (GUI), когда нажимается кнопка в другом действии, и как вы передаете данные между этими двумя действиями?
627
В приложении Android, как вы запускаете новое действие (GUI), когда нажимается кнопка в другом действии, и как вы передаете данные между этими двумя действиями?
Легко.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Дополнения извлекаются на другой стороне через:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
Не забудьте добавить новое действие в AndroidManifest.xml:
<activity android:label="@string/app_name" android:name="NextActivity"/>
CurrentActivity.this.startActivity(myIntent)
иstartActivity(myIntent)
?Создайте намерение для действия ViewPerson и передайте PersonID (например, для поиска в базе данных).
Затем в ViewPerson Activity вы можете получить пакет дополнительных данных, убедиться, что они не равны нулю (в случае, если вы иногда не передаете данные), а затем получить данные.
Теперь, если вам нужно обмениваться данными между двумя действиями, вы также можете иметь Global Singleton.
Затем позвоните в любой деятельности:
источник
Текущие ответы - это здорово, но для начинающих нужен более полный ответ. Есть 3 различных способа начать новое действие в Android, и все они используют
Intent
класс; Намерение | Разработчики Android .onClick
атрибута кнопки. (Начальный)OnClickListener()
через анонимный класс. (Средний)switch
оператора. (Pro)Вот ссылка на мой пример, если вы хотите следовать:
1. Использование
onClick
атрибута кнопки. (Начальный)Кнопки имеют
onClick
атрибут, который находится в XML-файле:В классе Java:
Преимущество : Легко сделать на лету, модульный, и может легко установить несколько
onClick
s для одного и того же намерения.Недостаток : сложность чтения при просмотре.
2. Назначение
OnClickListener()
через анонимный класс. (Средний)Это когда вы устанавливаете отдельный
setOnClickListener()
для каждогоbutton
и переопределите каждыйonClick()
со своим собственным намерением.В классе Java:
Преимущество : легко сделать на лету.
Недостаток : будет много анонимных классов, которые затруднят чтение при просмотре.
3. Метод широкого интерфейса активности с использованием
switch
оператора. (Pro)Это когда вы используете
switch
оператор для своих кнопок вonClick()
методе для управления всеми кнопками действия.В классе Java:
Преимущество : простое управление кнопками, поскольку все намерения кнопок регистрируются одним
onClick()
способомВторую часть вопроса о передаче данных см. В разделе Как передавать данные между операциями в приложении Android?
источник
Когда пользователь нажимает на кнопку, прямо внутри XML, вот так:
Используя атрибут,
android:onClick
мы объявляем имя метода, которое должно присутствовать в родительском действии. Поэтому я должен создать этот метод внутри нашей деятельности следующим образом:источник
источник
источник
Эммануэль,
Я думаю, что дополнительная информация должна быть помещена перед началом действия, иначе данные еще не будут доступны, если вы обращаетесь к ним в методе onCreate NextActivity.
источник
Из отправляющей активности попробуйте следующий код
Из получающей активности попробуйте следующий код:
Затем просто добавьте следующий код в файл AndroidManifest.xml
источник
источник
Попробуйте этот простой метод.
источник
Вы можете попробовать этот код:
источник
Способ начать новые действия - это передать намерение, и есть определенный тип намерения, который вы можете использовать для передачи данных из одного действия в другое. Я рекомендую вам ознакомиться с документами для разработчиков Android, связанными с намерениями ; это обширная информация по этому вопросу, и есть примеры.
источник
Котлин
Первое занятие
Вторая деятельность
Предложение
Всегда помещайте ключи в постоянный файл для более управляемого пути.
источник
Запуск действия из другого действия - очень распространенный сценарий среди приложений для Android.
Чтобы начать занятие, вам нужен объект Intent .
Как создать Объекты Намерения?
Объект намерения принимает два параметра в своем конструкторе
Так, например, если у вас есть два вида деятельности, скажем ,
HomeActivity
и ,DetailActivity
и вы хотите , чтобы начатьDetailActivity
сHomeActivity
(HomeActivity -> DetailActivity).Вот фрагмент кода, который показывает, как запустить DetailActivity из
И вы сделали.
источник
Запустите другое действие из этого действия, и вы также можете передать параметры через Bundle Object.
Получить данные в другой деятельности (YourActivity)
источник
Реализуйте интерфейс View.OnClickListener и переопределите метод onClick.
источник
Хотя правильные ответы уже были предоставлены, но я здесь для поиска ответа на языке Kotlin. Этот вопрос не относится к конкретному языку, поэтому я добавляю код для выполнения этой задачи на языке Kotlin.
Вот как вы делаете это в Kotlin для andorid
источник
Самый простой способ открыть действие по нажатию кнопки:
onclick
функции.MainActivity.java
SecondActivity.java
AndroidManifest.xml (просто добавьте этот блок кода к существующему)
источник
Сначала возьмите кнопку в XML.
Сделать список для кнопки.
источник
Когда кнопка нажата:
Чтобы получить дополнительные данные от
NextActivity.class
:источник
Напишите код в вашей первой деятельности.
В secondActivity.class
источник
Поместите виджет кнопки в xml, как показано ниже
После этого инициализируйте и обработайте щелчок слушателя в Activity, как показано ниже.
В методе Activity On Create:
источник