1. 程式人生 > >安卓介面基本元件---按鈕

安卓介面基本元件---按鈕

所有的UI元件裡面,功能最容易被理解的恐怕就是按鈕。安卓UI元件中提供了兩個按鈕:普通按鈕和圖片按鈕,區別在於圖片按鈕顯示的是一個圖片。試想:開發遊戲程式介面,放置一個沒有任何效果的普通按鈕,將會大大降低遊戲的趣味。

由於按鈕比較簡單,所以本篇文章結構也比較簡單。文章前面介紹了安卓的按鈕和圖片按鈕,後面是本文重點,介紹了給元件加監聽器的程式碼基本寫法。

一      普通按鈕

    普通按鈕的屬性比較簡單,在eclipse裡面可以直接檢視到,開發過程中可以直接編輯它的屬性,如下圖:

    按鈕的功能是檢測使用者的點選事件,之後驅動程式產生相應的動作。安卓框架為元件的事件監聽機制提供了兩種方案:

    方案1>給我們的元件設定id,程式將按鈕例項化以後,通過setOnClickListener()方法設定

    方案2>在xml檔案裡面用android:onClick屬性指定,屬性的引數對應了方法名

方案1例項操作:

複製程式碼
        Button bt = (Button)findViewById(R.id.button1);
        bt.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                
            }
        });
    }
複製程式碼

方案2例項操作:

複製程式碼
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:onClick="myView" />


    //java程式碼
    private void myView(){
        
    }
複製程式碼

二  圖片按鈕

          圖片按鈕的用法和普通按鈕基本相同,區別在於圖片按鈕能夠顯示圖片,指定圖片的屬性android:src。同樣,圖片按鈕和普通按鈕都是能夠繫結使用者事件,實現監聽功能。

圖片按鈕操作:

複製程式碼
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />
複製程式碼

三    安卓監聽器的基本寫法

1>匿名內部類
bt.setOnClickListener(new onClickListener(){
   @Override
   public void onClick(View arg0){
   
   }
})
2>獨立類的實現
class MyOnClickListener implements OnClickListener{
    @Override
    public void onClick(View v){
    
    }
}

bt.setOnClickListener(new MyOnClickListener(){
    @Override
    public void onClick(View v){
    super.onClick(v);
        }
})
共同的邏輯事件可以通過父類進行統一實現。
3>實現介面的方式實現
在我們需要的類裡面實現所需要的介面.
public class MainActivity extends Activity implements OnClickListener{

    bt.setOnClickListener(this);
    
    @Override
    public void onClick(View v){
    
    }
}

    本人也是初學者,水平有限,難免犯錯。希望批評指正!當然沒看明白的也希望留言,我會修改文章,追求人人看懂!