android初學之自定義控件

自定義控件. android


1,寫一個自定義控件類繼承系統的一個佈局.(5大布局) ,重寫3個構造方法 定義checked方法判斷當前自定義控件是否被選中(若是自定義控件裏面有CheckBox,能夠把CheckBox找到,判斷它是否被選中)
  能夠再寫一個方法來設置當前控件的選中狀態:setChecked();  要更改裏面的內容還要寫方法 數組

2,在res_layout目錄下建立layout:你要顯示的樣式,注意:若是裏面有checkbox,須要注意他的點擊和焦點 app

3,用View.inflate(context, R.layout.view_setting, this); //把xml文件轉化成對象,this:view對象以本身爲父體  在三個構造方法中都要調用 佈局

4,在要用到自定義控件的layout.xml文件裏面放入自定義控件,節點名稱是自定義控件類的全名
  <com.example.myapplication.SettingView
   android:id="@+id/sv_setting"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />
  this

 
5,在value目錄下建立一個attrs.xml文件,裏面建立自定義控件的屬性
 <declare-styleable name="my_setting_view">
        <attr name="title" format="string" />  //title屬性是string類型
        <attr name="content" format="string" />
    </declare-styleable>
 
6,在activity中要使用自定義控件,就要在它的layout.xml中聲明本身的名稱空間:
 在 xmlns:android="http://schemas.android.com/apk/res/android" 後添加本身的名稱空間
  xmlns:xxx="http://schemas.android.com/apk/res/cn.xxx.mobilesafe"
  
  這時就能夠在自定義的控件裏面設置它的屬性,以下:
   <com.example.myapplication.SettingView
   android:id="@+id/sv_setting"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   xxx:title = "我是標題"
   xxx:content = "我是內容"/>
   
7,在自定義控件類中的構造方法裏面: orm

  //把屬性集和咱們定義的屬性數組創建對應關係
  TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.my_setting_view);
  String content = a.getString(R.styleable.my_setting_view_content);
  String title = a.getString(R.styleable.my_setting_view_title);
  tv_title.setText(title);  //控件tv_title須要在view.inflate()後findViewbyId找到控件
  tv_content.setText(content);
  a.recycle();
  
8,在Activity代碼中找到自定義控件,進行操做  xml

相關文章
相關標籤/搜索