A Activity 開啟 B Activity Intent 用法 (一) 有說明了
這次換作 開啟時 並帶資料給予 B的方法
真接上程式碼
a_layout.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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is Activity A" /> <Button android:id="@+id/a_layout_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Go" /> <TextView android:id="@+id/a_layout_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>A_Activity.java
package com.example.testintent; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class A_Activity extends Activity { private Button bt; private TextView tv; private OnClickListener click = new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(A_Activity.this,B_Activity.class); intent .putExtra("name","Hello B Activity"); startActivity(intent); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a_layout); bt = (Button)findViewById(R.id.a_layout_bt); bt.setOnClickListener(click); tv = (TextView)findViewById(R.id.a_layout_tv); } }b_layout.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:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is Activity B" /> <TextView android:id="@+id/b_layout_et1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>B_Activity.java
package com.example.testintent; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.TextView; public class B_Activity extends Activity { private TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.b_layout); Intent intent = this.getIntent(); String data = intent.getStringExtra("name"); tv1 = (TextView)findViewById(R.id.b_layout_et1); tv1.setText(name); } }此程式功能 是把 A Activity 開啟 B Activity 並帶字串 Hello B Activity B Activity 顯示出收到的字串 重點在於
A_Activity.java 底下的
Intent intent = new Intent();
intent.setClass(A_Activity.this,B_Activity.class);
底下這行與上一篇不一樣的地方
以下就是 key value的作法
"name" 就是 key
"Hello B Activity" 就是 value
intent .putExtra("name","Hello B Activity");
startActivity(intent);
B_Activity.java底下的
Intent intent = getIntent();
//getStringExtra(對應的key);
String data = intent.getStringExtra("name");
這邊作法是 取得Intent 帶過來的東西
附上Source Code
沒有留言:
張貼留言