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();
–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>
结果如图所示: