Передача данных с одного Activity на другое Activity – Devcolibri – Android для начинающих

Передача данных с одного Activity на другое Activity

В этом уроке я бы хотел вам показать как передавать данные с одного 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

90987
29/06/2013

21 комментариев к статье "Передача данных с одного Activity на другое Activity"

Добавить комментарий

Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.

Я ознакомлен(а)