Подтвердить что ты не робот

Как передать значение с одного действия на другое в Android?

Я создал Activity с AutuCompleteTextView [ACTV] и кнопкой. Я ввожу некоторый текст в ACTV, затем нажимаю кнопку. После того, как я нажму кнопку, я хочу, чтобы Activity перешла в другое действие. Во втором действии я просто хочу отобразить текст, введенный в ACTV (первой активности) в виде TextView.

Я знаю, как запустить второе действие, которое приведено ниже:

Intent i = new Intent(this, ActivityTwo.class);
startActivity(i);

Я закодировал это, чтобы получить текст, введенный с ACTV.

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
CharSequence getrec=textView.getText();

Мой вопрос здесь в том, как передать "getrec" ​​(после нажатия кнопки) от первого действия до второго. И позже получите "getrec" ​​во втором действии.

Предположим, что я создал класс обработчика событий для кнопки, используя "onClick (View v)"

4b9b3361

Ответ 1

Вы можете использовать Bundle, чтобы сделать то же самое в Android

Создайте намерение:

Intent i = new Intent(this, ActivityTwo.class);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
String getrec=textView.getText().toString();

//Create the bundle
Bundle bundle = new Bundle();

//Add your data to bundle
bundle.putString("stuff", getrec);

//Add the bundle to the intent
i.putExtras(bundle);

//Fire that second activity
startActivity(i);

Теперь во втором действии извлеките свои данные из пакета:

//Get the bundle
Bundle bundle = getIntent().getExtras();

//Extract the data…
String stuff = bundle.getString("stuff"); 

Ответ 2

Стандартный способ передачи данных из одной активности в другую:

Если вы хотите отправить большое количество данных из одной активности в другую, тогда вы можете поместить данные в пакет, а затем передать его с помощью метода putExtra().

//Create the `intent`
 Intent i = new Intent(this, ActivityTwo.class);
String one="xxxxxxxxxxxxxxx";
String two="xxxxxxxxxxxxxxxxxxxxx";
//Create the bundle
Bundle bundle = new Bundle();
//Add your data to bundle
bundle.putString("ONE", one);
bundle.putString("TWO", two);  
//Add the bundle to the intent
i.putExtras(bundle);
//Fire that second activity
startActivity(i);

в противном случае вы можете напрямую использовать putExtra() с целью отправки данных и getExtra() для получения данных.

Intent i=new Intent(this, ActivityTwo.class);
i.putExtra("One",one);
i.putExtra("Two",two);
startActivity(i);

Ответ 3

Thats тривиально, используйте Intent.putExtra для передачи данных в действие, которое вы запускаете. Используйте для этого Bundle.getExtra.

Есть много таких вопросов уже https://stackoverflow.com/search?q=How+to+pass+a+value+from+one+Activity+to+another+in+Android не забудьте использовать поиск в следующий раз.

Ответ 4

Реализуем таким образом

String i="hi";
Intent i = new Intent(this, ActivityTwo.class);
//Create the bundle
Bundle b = new Bundle();
//Add your data to bundle
b.putString("stuff", i);
i.putExtras(b);
startActivity(i);

Начните второй activity, внутри этого class, чтобы использовать значения Bundle, используйте этот код

Bundle bundle = getIntent().getExtras();
String text= bundle.getString("stuff");

Ответ 5

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

Ответ 6

Это просто, если вы передаете строку X из A в B.
A--> B

В Деятельности А
1) Создать намерение
2) Поместите данные в намерение, используя метод намерения putExtra
3) Начать деятельность

Intent i = new Intent(A.this, B.class);
i.putExtra("MY_kEY",X);

В действии B
внутри метода onCreate
1) Получить объект намерения
2) Получить сохраненное значение с помощью ключа (MY_KEY)

Intent intent = getIntent();
String result = intent.getStringExtra("MY_KEY");

Это стандартный способ отправки данных из А в Б. Вы можете отправить любой тип данных, это может быть int, boolean, ArrayList, String []. В зависимости от типа данных, который вы сохранили в Activity в качестве ключа, метод получения пары значений может отличаться, например, если вы передаете int значение, вы вызовете

intent.getIntExtra("KEY");

Вы также можете даже отправлять объекты Class, но для этого вы должны заставить свой объект класса реализовывать интерфейс Serializable или Parceable.

TransactionTooLargeException

Сколько данных вы можете отправить по размеру. Если размер данных превышает определенный объем, вы можете получить TransactionTooLargeException. Предположим, вы пытаетесь отправить растровое изображение через действие, и если размер превышает определенный размер данных, вы можете увидеть это исключение.

Ответ 7

в первом занятии:

Intent i=new Intent(getApplicationContext,secondActivity.class);

i.putExtra("key",value);

startActivity(i);

и в SecondActivity:

String value=getIntent.getStringExtra("Key");

Ответ 8

Пример кода Котлина, как показано ниже: -

Страница 1

val i = Intent(this, Page2::class.java)
            val getrec = list[position].promotion_id
            val bundle = Bundle()
            bundle.putString("stuff", getrec)
            i.putExtras(bundle)
            startActivity(i)

Страница 2

        var bundle = getIntent().getExtras()
        var stuff = bundle.getString("stuff")