Android Activity之间的传值示例

来源:互联网 发布:遗传算法的书籍 编辑:程序博客网 时间:2024/06/03 03:29

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'}