Android Activity之间的传值示例

时间:2024-04-15 16:10:09

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="online.geekgalaxy.activityargsdelivery"> <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=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MyActivity"
android:label="@string/title_activity_my_activity2" >
</activity>
</application> </manifest>

MainActivity.java

package online.geekgalaxy.activityargsdelivery;

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;
import android.widget.RadioGroup; public class MainActivity extends AppCompatActivity { private Button btnregister;
private EditText editname;
private RadioGroup rad; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); btnregister = (Button)findViewById(R.id.btnregister);
editname = (EditText)findViewById(R.id.editname);
rad = (RadioGroup)findViewById(R.id.radioGroup);
btnregister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name,sex = "";
Intent it = new Intent(MainActivity.this,MyActivity.class); name = editname.getText().toString(); //遍历RadioGroup找出被选中的单选按钮
for(int i = 0;i < rad.getChildCount();i++)
{
RadioButton rd = (RadioButton)rad.getChildAt(i);
if(rd.isChecked())
{
sex = rd.getText().toString();
break;
}
} //新建Bundle对象,并把数据写入
Bundle bd = new Bundle();
bd.putCharSequence("user",name);
bd.putCharSequence("sex",sex); //将数据包Bundle绑定到Intent上
it.putExtras(bd);
startActivity(it);
//关闭第一个Activity
finish(); }
});
}
}

MyActivity.java

package online.geekgalaxy.activityargsdelivery;

/**
* Created by jailman on 2017/10/17.
*/ import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView; public class MyActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2); TextView txtshow = (TextView) findViewById(R.id.txtshow);
//获得Intent对象,并且用Bundle出去里面的数据
Intent it = getIntent();
Bundle bd = it.getExtras(); //按键值的方式取出Bundle中的数据
String name = bd.getCharSequence("user").toString();
String sex = bd.getCharSequence("sex").toString();
txtshow.setText("尊敬的"+ name + " " + sex + "士"+"恭喜你,注册成功~");
} }

layout

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入注册信息:"/>
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"/> <EditText
android:hint="请输入用户名"
android:id="@+id/editname"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性 别:"
/> <RadioGroup
android:id="@+id/radioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"> <RadioButton
android:id="@+id/btnman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:checked="true"/> <RadioButton
android:id="@+id/btnwoman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"/>
</RadioGroup>
</LinearLayout> <Button
android:id="@+id/btnregister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册"/> </LinearLayout>

activity_2.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="online.geekgalaxy.activityargsdelivery.MyActivity"> <TextView
android:id="@+id/txtshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </RelativeLayout>

values

strings.xml

<resources>
<string name="app_name">ActivityArgsDelivery</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="title_activity_my_activity2">MyActivity2</string>
</resources>

build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "online.geekgalaxy.activityargsdelivery"
minSdkVersion 25
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
} dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}