Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自定義View控件

Android自定義View控件

編輯:關於Android編程

自定義View控件, 算是常見的用法. 剛接觸安卓開發的時候, 很多人習慣在不同的XML布局文件裡面Copy一大段代碼, "達到相同View不斷被使用的效果",但如果以後要改這個view了,估計也是很頭疼的事情,而且一大段代碼看起來也不夠簡潔. 而一旦自定義一個view, 就能在布局裡面重復的調用它,而不必寫一大段XML代碼了. 這裡用一個簡單的例子介紹下.

比如這個布局: (一個RelativeLayout裡面, 左右分別一個TextView),常見的是在某個列表裡充當item

\

准備一個布局文件

首先, 當然是在layout文件夾新建這個布局文件: item_list_cus_2.xml



	
    
    
    
    
    
    
    
    
    

自定義屬性

兩個TextView都要使用類似setText(" ")的方法去設置自己的內容是吧.

於是,在values文件夾新建一個attrs.xml



    
    
        
        
    
    
我們假設,左邊那個TextView是充當Title, 右邊的TextView是充當content. 所以上面分別自定義title和content的屬性, 格式都是string.

自定義View類,做控件

上面准備功夫做好.在 包裡新建一個繼承RelativeLayout的ItemListCustomText類, 請注意,這個名字必須和自定義屬性XML文件中的name是一致的.

public class ItemListCustomText extends RelativeLayout{
	private TextView tv_left;
	private TextView tv_rirght;
	private String title;
	private String content;
	
	public ItemListCustomText(Context context, AttributeSet attrs) {
        super(context, attrs);
        View view = View.inflate(context, R.layout.item_list_custom_2, this);
        tv_left = (TextView) view.findViewById(R.id.tv_item_list_cus_2_title);
        tv_rirght = (TextView) view.findViewById(R.id.tv_item_list_cus_2_con);
        
        TypedArray t = context.obtainStyledAttributes(attrs, R.styleable.ItemListCustomText);    
        title = t.getString(R.styleable.ItemListCustomText_title);    
      	if(title != null) tv_left.setText(title);    
      	content = t.getString(R.styleable.ItemListCustomText_content);
      	if(content != null) tv_rirght.setText(content); 
      	t.recycle();  
        
    }
	
	public void setTitle(String title){
		tv_left.setText(title);
	}
	 
	public void setContent(String content){
		tv_rirght.setText(content);
	}
	
}
上面類中主要提供了兩個方法, setTitle(String title) 和setContent(String content), 這樣代碼裡就能通過在它們去設置文本內容.

使用自定義View的控件

要注意的地方:xmlns:itemText="http://schemas.android.com/apk/res/com.sample.android"

com.sample.android 這裡應該寫自己的包名,就是AndroidManifest.xml裡面的那個,你懂的~


    
    

上面是布局文件裡面的調用. 當然,在代碼裡面也是直接可以用的.

在代碼裡findViewById後,直接調用自定義的方法設置文本即可.

itemText.setContent("標題~");
itemText.setContent("內容~");

以上,就是一個完整的自定義用法.例子雖簡單,但是觸類旁通.這樣就能自己定義更復雜的一些View控件了.



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved