手機的世界哩,實現手機頁面的轉換最簡單作法為改變Activitylayout,只要善加利用這個,是可以做到很多頁面轉換的效果,也可以讓使用者選擇自己喜歡的系統樣式、背景圖案及文字顏色等等,直接按套用來改變版型。另外使用setContentView來換置頁面還有一個很棒的優點,就是所有程式裡的變數皆存在相同的狀態,無論是類別成員變數、類別函式等等,都可以在一個Activity下取得,沒有參數傳的的問題。比如說:訂票系統的程式,首先layout01先讓使用者輸入資料(姓名、電話、信用卡卡號等等),下一畫面layout02為確認畫面讓使用者進行確認,最後一畫面layout03進行刷卡交易的動作。

本篇在討論一個Activity下,如何做到手機頁面轉換,而不是切換Activity! 切換Activity請看另一篇文章 http://style77125tech.pixnet.net/blog/post/13440183

小試身手小範例:

佈局的兩個layout分別為layout01(main.xml)以及layout02(mylayout.xml),預設載入的layoutmain.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();

            }           

        });

    }

}

ChangeLayout01.jpg  

ChangeLayout02.jpg  

arrow
arrow
    創作者介紹
    創作者 S 的頭像
    S

    S's Journal

    S 發表在 痞客邦 留言(6) 人氣()