[Android]使用 Intent 傳遞資訊
<1> Master activity sends information to Slave activity.
<2> Slave activity responses information to Master activity.
<MasterActivity.java>
1: package com.android.intentpassdata;
2:
3: import android.app.Activity;
4: import android.content.Intent;
5: import android.graphics.Color;
6: import android.os.Bundle;
7: import android.view.View;
8: import android.widget.Button;
9: import android.widget.EditText;
10: import android.widget.TextView;
11:
12: public class MasterActivity extends Activity {
13:
14: private Bundle bundle;
15: private int requestCode = 110;
16: private Button b1, b2;
17: private TextView tv;
18: private EditText et;
19:
20: /** Called when the activity is first created. */
21: @Override
22: public void onCreate(Bundle savedInstanceState) {
23: super.onCreate(savedInstanceState);
24: setContentView(R.layout.main);
25: findViews();
26: buttonListeners();
27:
28: }
29:
30:
31: private void findViews() {
32: et = (EditText) findViewById(R.id.editText1);
33: b1 = (Button) findViewById(R.id.btnSend);
34: b2 = (Button) findViewById(R.id.btnExit);
35: tv = (TextView) findViewById(R.id.textView3);
36: }
37:
38:
39: private void buttonListeners(){
40:
41: b1.setOnClickListener(new View.OnClickListener() {
42: public void onClick(View v) {
43: Intent intent = new Intent(v.getContext(),SlaveActivity.class);
44: bundle = new Bundle();
45: bundle.putString("main_send_msg", et.getText().toString());
46: intent.putExtras(bundle);
47: startActivityForResult(intent, requestCode);
48: }
49: });
50:
51: b2.setOnClickListener(new View.OnClickListener() {
52: public void onClick(View v) {
53: finish();
54: }
55: });
56: }
57:
58: @Override
59: protected void onActivityResult(int requestCode, int resultCode, Intent data) {
60: bundle = data.getExtras();
61: String got_return_msg = bundle.getString("slave_return_msg");
62: tv.setBackgroundColor(Color.YELLOW);
63: tv.setTextColor(Color.RED);
64: tv.setText(got_return_msg);
65: }
66:
67: }
<SlaveActivity.java>
1: package com.android.intentpassdata;
2:
3: import android.app.Activity;
4: import android.content.Intent;
5: import android.graphics.Color;
6: import android.os.Bundle;
7: import android.view.View;
8: import android.widget.Button;
9: import android.widget.EditText;
10: import android.widget.TextView;
11:
12: public class SlaveActivity extends Activity {
13: private EditText et;
14: private TextView tv;
15: private Button b1;
16:
17: @Override
18: public void onCreate(Bundle savedInstanceState) {
19: super.onCreate(savedInstanceState);
20: setContentView(R.layout.slavelayout);
21:
22: findViews();
23: showResults();
24: buttonListener();
25: }
26:
27: private void findViews(){
28: et = (EditText) findViewById(R.id.editText1);
29: b1 = (Button) findViewById(R.id.btnReturn);
30: tv = (TextView)findViewById(R.id.textView2);
31: }
32:
33:
34: private void showResults(){
35: Bundle bundle = this.getIntent().getExtras();
36: String got_send_msg = bundle.getString("main_send_msg");
37: tv.setBackgroundColor(Color.YELLOW);
38: tv.setTextColor(Color.RED);
39: tv.setText(got_send_msg);
40: }
41:
42:
43: private void buttonListener(){
44: b1.setOnClickListener(new View.OnClickListener() {
45: public void onClick(View v) {
46: Intent intent = new Intent();
47: Bundle bundle = new Bundle();
48: bundle.putString("slave_return_msg", et.getText().toString());
49: intent.putExtras(bundle);
50: // resultCode=RESULT_OK
51: setResult(RESULT_OK, intent);
52: SlaveActivity.this.finish();
53: }
54: });
55: }
56: }
<main.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3: android:layout_width="fill_parent"
4: android:layout_height="fill_parent"
5: android:orientation="vertical" >
6:
7: <TextView
8: android:layout_width="fill_parent"
9: android:layout_height="wrap_content"
10: android:text="@string/activity_master_name" />
11:
12: <RelativeLayout
13: android:id="@+id/relativeLayout1"
14: android:layout_width="match_parent"
15: android:layout_height="wrap_content" >
16:
17: <TextView
18: android:id="@+id/textView1"
19: android:layout_width="wrap_content"
20: android:layout_height="wrap_content"
21: android:layout_alignParentLeft="true"
22: android:layout_centerVertical="true"
23: android:text="@string/strSendtoSlave"
24: android:textSize="14sp" />
25:
26: <EditText
27: android:id="@+id/editText1"
28: android:layout_width="150dp"
29: android:layout_height="45dp"
30: android:layout_alignParentRight="true"
31: android:layout_alignParentTop="true"
32: android:inputType="text" >
33:
34: <requestFocus />
35: </EditText>
36:
37: </RelativeLayout>
38:
39: <RelativeLayout
40: android:id="@+id/relativeLayout2"
41: android:layout_width="match_parent"
42: android:layout_height="wrap_content" >
43:
44: <TextView
45: android:id="@+id/textView2"
46: android:layout_width="wrap_content"
47: android:layout_height="wrap_content"
48: android:layout_alignParentLeft="true"
49: android:layout_centerVertical="true"
50: android:text="@string/strReceivefromSlave"
51: android:textSize="14sp" />
52:
53: <TextView
54: android:id="@+id/textView3"
55: android:layout_width="150dp"
56: android:layout_height="45dp"
57: android:layout_alignParentRight="true"
58: android:layout_alignParentTop="true"
59: android:focusable="false"
60: android:gravity="center_vertical|left"
61: android:text="@string/strNull"
62: android:textSize="16sp" />
63:
64: </RelativeLayout>
65:
66: <RelativeLayout
67: android:id="@+id/relativeLayout3"
68: android:layout_width="match_parent"
69: android:layout_height="wrap_content" >
70:
71: <Button
72: android:id="@+id/btnSend"
73: android:layout_width="wrap_content"
74: android:layout_height="wrap_content"
75: android:layout_alignParentLeft="true"
76: android:layout_alignParentTop="true"
77: android:text="@string/strSend" />
78:
79: <Button
80: android:id="@+id/btnExit"
81: android:layout_width="wrap_content"
82: android:layout_height="wrap_content"
83: android:layout_alignParentTop="true"
84: android:layout_marginLeft="22dp"
85: android:layout_toRightOf="@+id/btnSend"
86: android:text="@string/strExit" />
87:
88: </RelativeLayout>
89:
90: </LinearLayout>
<slavelayout.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3: android:layout_width="match_parent"
4: android:layout_height="match_parent"
5: android:orientation="vertical" >
6:
7: <TextView
8: android:layout_width="fill_parent"
9: android:layout_height="wrap_content"
10: android:text="@string/activity_slave_name" />
11:
12:
13: <RelativeLayout
14: android:id="@+id/relativeLayout1"
15: android:layout_width="match_parent"
16: android:layout_height="wrap_content" >
17:
18:
19: <TextView
20: android:id="@+id/textView1"
21: android:layout_width="wrap_content"
22: android:layout_height="wrap_content"
23: android:layout_alignParentLeft="true"
24: android:layout_centerVertical="true"
25: android:text="@string/strReceivefromMaster"
26: android:textSize="14sp" />
27:
28: <TextView
29: android:id="@+id/textView2"
30: android:layout_width="150dp"
31: android:layout_height="45dp"
32: android:layout_alignParentRight="true"
33: android:layout_alignParentTop="true"
34: android:focusable="false"
35: android:gravity="center_vertical|left"
36: android:text="@string/strNull"
37: android:textSize="16sp" />
38:
39: </RelativeLayout>
40:
41:
42: <RelativeLayout
43: android:id="@+id/relativeLayout2"
44: android:layout_width="match_parent"
45: android:layout_height="wrap_content" >
46:
47:
48: <TextView
49: android:id="@+id/textView3"
50: android:layout_width="wrap_content"
51: android:layout_height="wrap_content"
52: android:layout_alignParentLeft="true"
53: android:layout_centerVertical="true"
54: android:text="@string/strReturntoMaster"
55: android:textSize="14sp" />
56:
57: <EditText
58: android:id="@+id/editText1"
59: android:layout_width="150dp"
60: android:layout_height="45dp"
61: android:layout_alignParentRight="true"
62: android:layout_alignParentTop="true"
63: android:inputType="text" />
64:
65: </RelativeLayout>
66:
67: <RelativeLayout
68: android:id="@+id/relativeLayout3"
69: android:layout_width="match_parent"
70: android:layout_height="wrap_content" >
71:
72:
73: <Button
74: android:id="@+id/btnReturn"
75: android:layout_width="wrap_content"
76: android:layout_height="wrap_content"
77: android:layout_alignParentLeft="true"
78: android:layout_alignParentTop="true"
79: android:text="@string/strReturn" />
80:
81: </RelativeLayout>
82:
83: </LinearLayout>
<strings.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <resources>
3:
4: <string name="hello">Hello World, MasterActivity!</string>
5: <string name="app_name">IntentPassData</string>
6: <string name="activity_master_name">Activity : Master</string>
7: <string name="activity_slave_name">Activity : Slave</string>
8: <string name="strSendtoSlave">傳送資料 to Slave:</string>
9: <string name="strReceivefromSlave">接收資料 from Slave :</string>
10: <string name="strSend">傳送資料</string>
11: <string name="strNull"></string>
12: <string name="strReceivefromMaster">接收資料 from Master :</string>
13: <string name="strReturntoMaster">回覆資料 to Master :</string>
14: <string name="strExit">離開</string>
15: <string name="strReturn">返回 Master</string>
16:
17: </resources>
<AndroidManifest.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3: package="com.android.intentpassdata"
4: android:versionCode="1"
5: android:versionName="1.0" android:installLocation="auto">
6:
7: <uses-sdk android:minSdkVersion="8" />
8:
9: <application
10: android:icon="@drawable/ic_launcher"
11: android:label="@string/app_name" >
12: <activity
13: android:name=".MasterActivity"
14: android:label="@string/app_name" >
15: <intent-filter>
16: <action android:name="android.intent.action.MAIN" />
17:
18: <category android:name="android.intent.category.LAUNCHER" />
19: </intent-filter>
20: </activity>
21: <activity android:name="SlaveActivity"></activity>
22: </application>
23:
24: </manifest>
沒有留言:
張貼留言