activity数据传递

1.数据传递方式
–Intent不仅可以用来开启Activity,也可以在Activity之间传递数据。在数据传递时,可以使用putExtra()方法将数据存储在Intent中。
String data = "Hello Activity02"
Intent intent = new Intent(this,Activity02.class);
intent.putExtra("extra_data",data);
startActivity(intent);
–将数据从Activity02中取出
Intent intent = getIntent();

String data = = intent.getStringExtra("extra_data");

–putExtra()不仅可以传递基本类型数据,还可以传递Bundle对象。
Bundle bundle = new Bundle();
bundle.putString("name", "Linda");
Intent intent = new Intent(this,Activity02.class);
intent.putExtra(bundle);
startActivity(intent);
–将数据从Activity02中取出
Intent intent = getIntent();
Bundle bundle = intent.getExtras();

String stuName = bundle.getString("name");

2.案例——用户注册

–为了让初学者更好的掌握Activity中的数据传递,接下来通过 用户注册的案例来演示Activity中的数据传递。

5个文件代码:activity01.xml ,activity02.xml,activity01.java,activity02.java,Manifest.xml分别如下所示:

activity01.xml代码 :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <LinearLayout
        android:id="@+id/regist_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="22dp"
        android:orientation="horizontal" >
        <TextView
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:paddingRight="5dp"
            android:text="用户名 :" />
        <EditText
            android:id="@+id/et_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入您的用户名"
            android:textSize="14dp" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/regist_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/regist_username"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >
        <TextView
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:paddingRight="5dp"
            android:text="密    码 :" />
        <EditText
            android:id="@+id/et_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入您的密码"
            android:inputType="textPassword"
            android:textSize="14dp" />
    </LinearLayout>
    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/regist_password"
        android:layout_marginLeft="30dp"
        android:contentDescription="性别"
        android:orientation="horizontal" >
        <RadioButton
            android:id="@+id/radioMale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="男" >
        </RadioButton>
        <RadioButton
            android:id="@+id/radioFemale"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女" />
    </RadioGroup>

    <Button
        android:id="@+id/btn_send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/radioGroup"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="24dp"
        android:text="提交用户信息" />

</RelativeLayout>

activity02.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20dp" />
    <TextView
        android:id="@+id/tv_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20dp" />
    <TextView
        android:id="@+id/tv_sex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginTop="10dp"
        android:textSize="20dp" />

</LinearLayout>

activity01.java代码:

 
 
package com.example.zlf.demo2_activity;

import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;

public class Activity01 extends Activity {

    private EditText et_name;
    private EditText et_password;
    private RadioButton manRadio;
    private RadioButton womanRadio;
    private Button btn_send;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity01);

        et_name = (EditText) findViewById(R.id.et_name);
        et_password = (EditText) findViewById(R.id.et_password);
        manRadio = (RadioButton) findViewById(R.id.radioMale);
        womanRadio = (RadioButton) findViewById(R.id.radioFemale);
        btn_send = (Button) findViewById(R.id.btn_send);

        btn_send.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                passData();
            }
        });

    }

    public void passData(){
        Intent intent = new Intent(this, Activity02.class);
        intent.putExtra("name", et_name.getText().toString().trim());//放相应的数据,转化成字符串,去掉空格
        intent.putExtra("password", et_password.getText().toString().trim());

        String str="";
        if(manRadio.isChecked()){//判断
            str = "男";
        }else if(womanRadio.isChecked()){
            str = "女";
        }
        intent.putExtra("sex", str);

        startActivity(intent);

    }
}

activity02.java代码:

 
 
package com.example.zlf.demo2_activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Activity02 extends Activity {
    private TextView tv_name;
    private TextView tv_password;
    private TextView tv_sex;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity02);

        tv_name = (TextView)findViewById(R.id.tv_name);
        tv_password = (TextView)findViewById(R.id.tv_password);
        tv_sex = (TextView)findViewById(R.id.tv_sex);

        Intent intent = getIntent();//获取数据

        String name = intent.getStringExtra("name");
        String password = intent.getStringExtra("password");
        String sex = intent.getStringExtra("sex");

        tv_name.setText("用户名"+name);
        tv_password.setText("密码"+password);
        tv_sex.setText("性别"+sex);


    }
}

Manifest.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.zlf.demo2_activity">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Activity01">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
        <activity android:name="com.example.zlf.demo2_activity.Activity02"
            android:label="向用户展示信息">

        </activity>
    </application>

</manifest>

结果如图所示:



猜你喜欢

转载自blog.csdn.net/huanhuan59/article/details/80101061