在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ Android自定義組件及屬性
Android 應用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍牙)實例
Android RelativeLayout
Android最佳實踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android自定義組件及屬性

下面的例子說明了如何使用自定義屬性,并定義一個簡單Android的自定義組件。

步驟 描述
1 使用Eclipse IDE創(chuàng)建一個Android應用程序項目,并將它命名為:DateViewDemounder3
2 創(chuàng)建一個 res/values/attrs.xml 文件來定義數(shù)據(jù)類型以及新屬性
3 創(chuàng)建src/DateView.java文件,并添加定義自定義組件的代碼。這將擴展TextView,以有更多的功能來顯示當前的日期。提供的屬性具有解析邏輯AttributeSet作為構(gòu)造函數(shù)的參數(shù)
4 修改 res/layout/activity_main.xml  文件,并添加代碼以及一些默認的屬性和新屬性用于創(chuàng)建DateView實例
5 運行該應用程序啟動 Android模擬器并驗證應用程序所做的修改結(jié)果

下面是修改后的主活動文件 src/com.yiibai.dateviewdemo/MainActivity.java 的內(nèi)容。該文件可以包含每一個生命周期的基本方法。

package com.example.dateviewdemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the 
        // action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

下面是 res/values/attrs.xml 文件的內(nèi)容:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <declare-styleable name="DateView">
   <attr name="delimiter" format="string"/>
   <attr name="fancyText" format="boolean"/>
   </declare-styleable>
</resources>

以下將是新的文件 src/com.yiibai.dateviewdemo/DateView.java 的內(nèi)容,有的附加功能以顯示當前日期:

package com.example.dateviewdemo;

import java.text.SimpleDateFormat;
import java.util.Calendar;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;

public class DateView extends TextView {
   public String delimiter;
   public boolean fancyText;

   public DateView(Context context) {
      super(context);
      setDate();
   }

   public DateView(Context context, AttributeSet attrs) {
      super(context, attrs);
      TypedArray a = context.obtainStyledAttributes(attrs, 
      R.styleable.DateView );
      final int N = a.getIndexCount();
      for (int i = 0; i < N; ++i)
      {
         int attr = a.getIndex(i);

         switch (attr)
         {
            case R.styleable.DateView_delimiter:
            delimiter