手機的世界哩,實現手機頁面的轉換最簡單作法為改變Activity的layout,只要善加利用這個,是可以做到很多頁面轉換的效果,也可以讓使用者選擇自己喜歡的系統樣式、背景圖案及文字顏色等等,直接按套用來改變版型。另外使用setContentView來換置頁面還有一個很棒的優點,就是所有程式裡的變數皆存在相同的狀態,無論是類別成員變數、類別函式等等,都可以在一個Activity下取得,沒有參數傳的的問題。比如說:訂票系統的程式,首先layout01先讓使用者輸入資料(姓名、電話、信用卡卡號等等),下一畫面layout02為確認畫面讓使用者進行確認,最後一畫面layout03進行刷卡交易的動作。
本篇在討論一個Activity下,如何做到手機頁面轉換,而不是切換Activity! 切換Activity請看另一篇文章 http://style77125tech.pixnet.net/blog/post/13440183
小試身手小範例:
佈局的兩個layout分別為layout01(main.xml)以及layout02(mylayout.xml),預設載入的layout為main.xml,此layout內有一個按鈕(Button)當按下此Button可以跳到layout02去,同時在layout02佈局內也有一個按鈕(Button)當按下此Button可以跳到layout01去。
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/TextView01"
android:text="This is Layout01!"
android:layout_marginTop="10sp"
android:textSize="20sp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text=" Go to Layout02"
android:id="@+id/Button01"
/>
</LinearLayout>
mylayout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/TextView02"
android:text="This is Layout02"
android:layout_marginTop="10sp"
android:textSize="20sp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40sp"
android:text=" Go to Layout01"
android:id="@+id/Button02"
/>
</LinearLayout>
Java檔
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TestExam001 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button01 = (Button)findViewById(R.id.Button01);
button01.setOnClickListener(new Button.OnClickListener(){
publicvoid onClick(View v) {
// TODO Auto-generated method stub
jumpToLayout02();
}
});
}
public void jumpToLayout02(){
setContentView(R.layout.mylayout);
Button button02= (Button)findViewById(R.id.Button02);
button02.setOnClickListener(new Button.OnClickListener(){
publicvoid onClick(View v) {
// TODO Auto-generated method stub
jumpToLayout01();
}
});
}
public void jumpToLayout01(){
setContentView(R.layout.main);
Button button01 = (Button)findViewById(R.id.Button01);
button01.setOnClickListener(new Button.OnClickListener(){
publicvoid onClick(View v) {
// TODO Auto-generated method stub
jumpToLayout02();
}
});
}
}
留言列表