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
沒有留言:
張貼留言