В этом уроке я бы хотел вам показать как передавать данные с одного Activity на другое Activity.
Шаг 1
Создаем в нашей Intellij IDEA -> Android Application.
После создаем layout main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Введите ваше имя:" android:id="@+id/textView" android:layout_gravity="left|center_vertical"/> <EditText android:layout_width="167dp" android:layout_height="wrap_content" android:id="@+id/name" android:layout_gravity="left|center_vertical"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Введите вашу вамилию:" android:id="@+id/textView1" android:layout_gravity="left|center_vertical"/> <EditText android:layout_width="169dp" android:layout_height="wrap_content" android:id="@+id/lastname" android:layout_gravity="left|center_vertical"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Go to Activity" android:id="@+id/btnActTwo" android:onClick="goNewView" android:layout_gravity="left|center_vertical"/> </LinearLayout>
И так она будет выглядеть:
На этой Layout будут вводится данные и после нажатия на кнопку передаваться на другое окно.
И собственно создадим второй layout куда мы и будем передавать данные с формы.
Назовем её two.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/nametxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ваше имя:" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ваша фамилия: " android:id="@+id/lastnametxt" android:layout_gravity="left|center_vertical"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Назад" android:onClick="back" android:id="@+id/back_button" android:layout_gravity="left|center_vertical"/> </LinearLayout>
И так она будет выглядеть после того как мы передадим туда данные.
Layout-ы мы закончили создавать переходим к Activity.
Шаг 2
Создадим теперь Activity для main.xml и назовем его MainActivity.java:
package com.devcolibri.GoActivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity { private Button forward; private EditText name; private EditText lastName; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); forward = (Button) findViewById(R.id.btnActTwo); name = (EditText) findViewById(R.id.name); lastName = (EditText) findViewById(R.id.lastname); } }
и для второго layout tow.xml создаем следующий Activity, назовем его NewActivity.java:
package com.devcolibri.GoActivity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class NewActivity extends Activity { private Button back; private TextView name; private TextView lastName; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.two); back = (Button) findViewById(R.id.back_button); name = (TextView) findViewById(R.id.nametxt); lastName = (TextView) findViewById(R.id.lastnametxt); } }
Шаг 3
Intent – этот класс позволяет открывать новое Activity, запускать сервис, передавать данные между Activity.
Теперь в MainActivity добавим следующий метод, который передаст значения с формы на другое Activity после клика по кнопке:
public void goNewView(View v){ switch (v.getId()) { case R.id.btnActTwo: // Говорим между какими Activity будет происходить связь Intent intent = new Intent(this, NewActivity.class); // указываем первым параметром ключ, а второе значение // по ключу мы будем получать значение с Intent intent.putExtra("name", name.getText().toString()); intent.putExtra("lastname", lastName.getText().toString()); // показываем новое Activity startActivity(intent); break; default: break; } }
Теперь нужно вывести переданные значения на новом Activity. Для этого в NewActivity.java напишите следующий код, а именно в методе onCreate():
// Принимаем имя String txtName = getIntent().getStringExtra("name"); // Принимаем фамилию String txtLastname = getIntent().getStringExtra("lastname"); // выводим принятое имя name.setText(name.getText().toString() + " " + txtName); // Выводим принятую фамилию lastName.setText(lastName.getText().toString() + " " + txtLastname);
И последнее, что нужно сделать, добавить метод обработчика кнопки Назад в классе NewActivity.java:
public void back(View v){ switch (v.getId()) { case R.id.back_button: Intent intent = new Intent(this, MainActivity.class); startActivity(intent); break; default: break; } }
p.s. На этом все, что не понятно пишите в комментария я с радостью отвечу вам.
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
21 комментариев к статье "Передача данных с одного Activity на другое Activity"