Android 程式开发:(二)使用Intents链接Activities —— 2.4传递数据

除了能从一个Activity返回数据结果之外,向一个Activity传递数据也是很常用的。

1.新建一个名为PassData的工程。

2.main.xml中的代码。

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btn_SecondActivity" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClick" android:text="Click to go to Second Activity" /> </LinearLayout> 3.在res/layout文件夹下,创建secondactivity.xml文件。

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Welcome to Second Activity" /> <Button android:id="@+id/btn_MainActivity" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="onClick" android:text="Click to return to main activity" /> </LinearLayout> 4.新建一个Activity子类:SecondActivity.java。

package net.horsttnann.PassingData; import net.horsttnann.PassingData.R; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class SecondActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.secondactivity); // ---get the data passed in using getStringExtra()--- Toast.makeText(this, getIntent().getStringExtra("str1"), Toast.LENGTH_SHORT).show(); // ---get the data passed in using getIntExtra()--- Toast.makeText(this, Integer.toString(getIntent().getIntExtra("age1", 0)), Toast.LENGTH_SHORT).show(); // ---get the Bundle object passed in--- Bundle bundle = getIntent().getExtras(); // ---get the data using the getString()--- Toast.makeText(this, bundle.getString("str2"), Toast.LENGTH_SHORT) .show(); // ---get the data using the getInt() method--- Toast.makeText(this, Integer.toString(bundle.getInt("age2")), Toast.LENGTH_SHORT).show(); } public void onClick(View view) { // ---use an Intent object to return data--- Intent i = new Intent(); // ---use the putExtra() method to return some // value--- i.putExtra("age3", 45); // ---use the setData() method to return some value--- i.setData(Uri.parse("Something passed back to main activity")); // ---set the result with OK and the Intent object--- setResult(RESULT_OK, i); // ---destroy the current activity--- finish(); } } 5.AndroidManifest.xml中的代码。

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.horsttnann.PassingData" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".PassingDataActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="net.horsttnann.PassingData.SecondActivity" android:label="Second Activity" > <intent-filter> <action android:name="net.horsttnann.PassingDataSecondActivity" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest> 6.PassDataActivity中的代码。

7.按F11调试。


效果图:

程序第一次启动:



跳转到SecondActivity:

返回PassDataActivity:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值