動態加入 – 加入其他的layout

July 28, 2013   ·   0 Comments

6-8-3

 動態加入 – 加入其他的layout

SDK版本: API level 1 ,Android 1.0

在這裡介紹如何在程式之中,即時動態的加入畫面檔案XML檔。一開始的時候我們需要設置指定兩個XML檔案,然後我們透過程式的方法把它動態的加入。

這功能還蠻好用的,這個效果能可以讓你的應用程式看起來很華麗,運用起來也相當的方便。

其中activity_main.xml XML碼如下:

範例 Ch6-8 activity_main.xml (範例程式中sample\ch6\Tutorial_layout_add\res\layout\activity_main.xml

  1. <RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  2. xmlns:tools=”http://schemas.android.com/tools”
  3. android:layout_width=”match_parent”
  4. android:layout_height=”match_parent”
  5. android:paddingBottom=”@dimen/activity_vertical_margin”
  6. android:paddingLeft=”@dimen/activity_horizontal_margin”
  7. android:paddingRight=”@dimen/activity_horizontal_margin”
  8. android:paddingTop=”@dimen/activity_vertical_margin”
  9. tools:context=”.MainActivity” >
  10. <TextView
  11. android:id=”@+id/textView1″
  12. android:layout_width=”wrap_content”
  13. android:layout_height=”wrap_content”
  14. android:text=”@string/hello_world” />
  15. <LinearLayout
  16. android:id=”@+id/linearLayout1″
  17. android:layout_width=”wrap_content”
  18. android:layout_height=”wrap_content”
  19. android:layout_alignRight=”@+id/textView1″
  20. android:layout_below=”@+id/textView1″
  21. android:orientation=”vertical” >
  22. </LinearLayout>
  23. <Button
  24. android:id=”@+id/button1″
  25. android:layout_width=”wrap_content”
  26. android:layout_height=”wrap_content”
  27. android:layout_alignParentRight=”true”
  28. android:layout_alignParentTop=”true”
  29. android:layout_marginRight=”18dp”
  30. android:text=”Button” />
  31. </RelativeLayout>

XML解說:

  1. 17-23行: 在這裡呢特別準備一個LinearLayout,然後到時候程式執行時,別會把另外一個畫面的放到這裡。
  2. 26-33行: 在這裡我們加上一個按鈕,可以讓用戶按下按鈕之後,透過程式動態的加入另外一個畫面。

XML的表現:

6-8-1 activity_main.xml 使用所定義出來的效果。

範例 Ch6-6 page2.xml (範例程式中sample\ch6\Tutorial_layout_add\res\layout\page2.xml

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  3. android:layout_width=”match_parent”
  4. android:layout_height=”match_parent” >
  5. <TextView
  6. android:id=”@+id/textView1″
  7. android:layout_width=”wrap_content”
  8. android:layout_height=”wrap_content”
  9. android:layout_alignParentLeft=”true”
  10. android:layout_alignParentTop=”true”
  11. android:text=”new layout” />
  12. <Button
  13. android:id=”@+id/button1″
  14. android:layout_width=”wrap_content”
  15. android:layout_height=”wrap_content”
  16. android:layout_alignParentLeft=”true”
  17. android:layout_below=”@+id/textView1″
  18. android:text=”Button” />
  19. </RelativeLayout>

那在page2 .xml我們只是隨便放了幾個元件,並沒有特別的設計。

XML的表現:

6-8-2 page2.xml 使用所定義出來的效果。

  1. package com.powenko.tutorial_layout_add;
  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;
  9. import android.widget.LinearLayout;
  10. public class MainActivity extends Activity {
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_main);
  15. Button button1=(Button)findViewById(R.id.button1);
  16. button1.setOnClickListener(new OnClickListener(){
  17. @Override
  18. public void onClick(View arg0) {
  19. LinearLayout linearLayout1=(LinearLayout)findViewById(R.id.linearLayout1);
  20. LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  21. View view = inflater.inflate(R.layout.page2 , null, true); //讀取的page2.
  22. linearLayout1.addView(view); //加入畫面上
  23. }});
  24. }
  25. }

程式說明:

這一段程式的意思是

  1. 24行: 取得 LinearLayoutID
  2. 25行: 取得系統的 LayoutInflater
  3. 26行: 讀取 page2的資料後放入 View之中。
  4. 27行: 加入畫面上。

執行結果:

範例程式的執行結果。

6-8-3 範例結果。

執行影片:

範例執行影片 6-8-addLayout.mov(範例光碟中video\ch6\6-8-addLayout.mov) http://youtu.be/DaoTbDmeYWY

shareShare on FacebookShare on Google+Share on LinkedInEmail this to someonePrint this pageBuffer this pageDigg thisFlattr the authorShare on RedditPin on PinterestShare on StumbleUponShare on TumblrTweet about this on Twitter

By


Readers Comments (0)


You must be logged in to post a comment.

PowenKo’s Online Store

powenko_arduinoBook
Android7

Amazon

adsbygoogle

Recent Posts

Categories

Amazon