偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Android入門到精通之界面編程從Button說起

移動開發(fā) Android
Activity是單獨(dú)的,用于處理用戶操作。幾乎所有的Activity都要和用戶打交道,所以Activity類創(chuàng)建了一個(gè)窗口,開發(fā)人員可以通過setContentView(View)接口把UI放到Activity創(chuàng)建的窗口上,當(dāng)Activity指向全屏窗口時(shí),也可以用其他方式實(shí)現(xiàn):作為漂浮窗口(通過windowIsFloating的主題集合)或者嵌入到其他的Activity(使用ActivityGroup

Android 界面編程有兩種基本的方法,一種是在代碼中,動態(tài)創(chuàng)建一個(gè)個(gè)組件,及把這些組件用Layout來進(jìn)行組合成復(fù)雜的界面展現(xiàn)。一種是用圖形化的方式來編寫 布局Layout,這些布局被保存在XML文件中,會編譯成資源,被程序中的Activity來加載(setContentView()), 再通過findViewById方式來獲得每一個(gè)界面組件的引用進(jìn)行操作。對于大多數(shù)人來說,喜歡最直觀的方式,既代碼中動態(tài)生成的方式。我們就先從這里說起,至于可視化編程及布局資源的方式以后專門來講述。

一,布局管理(Layout)

每一個(gè)界面組件都是View的子類,都可以單獨(dú)占用一個(gè)屏幕,但是真正的有用的界面都是這些組件的組合,在Android中都是用各種Layout來進(jìn)行布局管理,這與傳統(tǒng)的J2SE中的一些AWT,SWING界面方式基本相同,這里就不多說。

二,一個(gè)單獨(dú)的界面元素:

在前面說到Hello World例子中,講過這樣一段代碼。在Activity中.

  1. public class HelloActivity extends Activity {  
  2.    /** Called when the activity is first created. */  
  3.    @Override  
  4.    public void onCreate(Bundle savedInstanceState) {  
  5.        super.onCreate(savedInstanceState);  
  6.        TextView tv = new TextView(this);  
  7.        tv.setText("Hello, World!");  
  8.        this.setContentView(tv);  
  9.         
  10.    }  

這里并沒有用到Layout,這就是單獨(dú)的組件方式。也可以改為:

 

  1. super.onCreate(savedInstanceState);  
  2. Button btn = new Button(this);  
  3. btn.setText("TestButton");  
  4. this.setContentView(btn); 

編譯運(yùn)行,會有一個(gè)全屏的Button,當(dāng)然這不是你想要的實(shí)用的界面.那我們就用Layout來布局

  1. super.onCreate(savedInstanceState);  
  2. Button btn = new Button(this);  
  3. btn.setText("TestButton");  
  4. Button btn2 = new Button(this);  
  5. btn2.setText("TestButton2");  
  6. LinearLayout layout = new LinearLayout(this);  
  7. layout.setOrientation(LinearLayout.VERTICAL);  
  8. layout.addView(btn);  
  9. layout.addView(btn2);  
  10. this.setContentView(layout); 

編譯運(yùn)行,你就可以看到了兩個(gè)上下排列的按鈕,當(dāng)然對于布局管理器的使用,做過PC 上AWT,SWING的人都不陌生,這里就不贅述。

那如何響應(yīng)事件呢: 大家猜一猜?想必大家不難猜到,在AWT中,在手機(jī)的J2ME中,都是用Listener 來處理事件響應(yīng),Android也未能脫俗。這與Blackberry,Symbian中的Observer是同一個(gè)道理。都是使用了設(shè)計(jì)模式的觀察者模式。下面來看一個(gè)能響應(yīng)事件的例子。

  1. import android.app.Activity; import android.os.Bundle;  
  2. import android.view.View;  
  3. import android.view.View.OnClickListener;  
  4. import android.widget.Button;  
  5. import android.widget.LinearLayout;  
  6.  
  7. public class HelloActivity extends Activity implements OnClickListener {  
  8.   Button btn = null;  
  9.   Button btn2 = null;  
  10.     public void onClick(View v) {      
  11.   if (v ==  btn)  
  12.   {  
  13.       this.setTitle("You Clicked Button1");        
  14.   }  
  15.   if (v ==  btn2)  
  16.   {  
  17.       this.setTitle("You Clicked Button2");  
  18.   }    
  19.  }   
  20.     @Override  
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         btn = new Button(this);  
  24.         btn2 = new Button(this);  
  25.         btn.setText("TestButton1");          
  26.         btn2.setText("TestButton2");  
  27.         btn.setOnClickListener(this);  
  28.         btn2.setOnClickListener(this);  
  29.         LinearLayout layout = new LinearLayout(this);  
  30.         layout.setOrientation(LinearLayout.VERTICAL);  
  31.         layout.addView(btn);  
  32.         layout.addView(btn2);  
  33.         this.setContentView(layout);         
  34.     }  

步驟是:

1、生成兩個(gè)Button,配置Click事件監(jiān)聽者為HelloActivity ,此類實(shí)現(xiàn)了OnClickListener接口。

2、放入布局,按布局顯示兩個(gè)Button

3、按下其中一個(gè)Button,生成Click事件,調(diào)用HelloActivity 的OnClick接口函數(shù)。

4、對于View參數(shù)的值,判斷是哪個(gè)View(Button)。改寫Activity的Titile內(nèi)容。注意,可別去對比View.getId(),缺省情況下,每個(gè)組件的Id值都為-1,除非人為設(shè)定Id值,用可視化編程時(shí),為自動為其生成一個(gè)Id值。

【編輯推薦】

Activity頁面切換的效果

Android四種Activity的加載模式

Android開發(fā):Activity之間的傳值

Android應(yīng)用之Activity傳參數(shù)與跳轉(zhuǎn)

如何在Android模擬器中安裝和卸載程序

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2012-02-29 00:49:06

Linux學(xué)習(xí)

2010-02-06 15:31:18

ibmdwAndroid

2009-07-22 14:55:16

ibmdwAndroid

2016-12-08 22:39:40

Android

2017-05-09 08:48:44

機(jī)器學(xué)習(xí)

2022-06-10 08:17:52

HashMap鏈表紅黑樹

2025-02-24 10:07:10

2024-02-26 08:52:20

Python傳遞函數(shù)參數(shù)參數(shù)傳遞類型

2010-11-08 10:20:18

2022-09-02 15:11:18

開發(fā)工具

2024-11-25 18:37:09

2023-10-13 08:23:05

2009-07-03 18:49:00

網(wǎng)吧綜合布線

2009-03-19 13:36:53

SSH安全通道遠(yuǎn)程

2011-10-26 20:47:36

ssh 安全

2024-06-07 08:51:50

OpenPyXLPythonExcel文件

2025-03-21 14:31:14

NumPyPython數(shù)組

2017-01-09 09:34:03

Docker容器傳統(tǒng)虛擬機(jī)

2024-04-11 14:00:28

2023-09-22 22:43:26

eval()Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號