Androidカスタムコントロールシリーズの基礎編

7822 ワード

一、概説
Android開発では多くのUIコントロールがアプリケーションのニーズを満たすためにカスタマイズされたり、より効果的になったりする必要があります.次に、一連のカスタマイズコントロールを紹介します.ここでは、いくつかのケースを通じて徐々に勉強します.このシリーズには典型的なアプリケーションがあります.皆さんも革新的にUIを開発することができます.今回は、カスタムコントロールでプロパティを定義する方法について、簡単なケースで基本的な知識を身につけます.
二、簡単なRadioButtonを実現する
1、作成タイプMRadioButton拡張RadioButton
public class MRadioButton extends RadioButton {

…    

}

2、MRadioButtonクラスで属性をカスタマイズする
コントロールで独自のプロパティを定義したり、複数のプロパティを定義したりすることができますが、set/getメソッド、すなわち仕様に従って書くことをカプセル化する必要があります.mValue属性のように、次のコードのように
private String mValue;

    public String getmValue() {

        return mValue;

    }

    public void setmValue(String mValue) {

        this.mValue = mValue;

    }

3、カスタム属性にattrsを書く.xmlリソース
このリソースファイルはres/valuesディレクトリの下にあります.内容は次のとおりです.
<?xml version="1.0" encoding="utf-8"?>

<resources>

    <declare-styleable name="MRadioButton">

            <! –     -->

        <attr name="value" format="string" />

    </declare-styleable>

</resources>

4、MRadioButtonクラスで構造関数を定義し、属性を初期化する
            public MRadioButton(Context context) {

        super(context);

    }

public MRadioButton(Context context, AttributeSet attrs, int defStyle) {

        super(context, attrs, defStyle);

    }

        public MRadioButton(Context context, AttributeSet attrs) {

        super(context, attrs);

        // attrs.xml        ’ .MRadioButton’ declare-styleable  

    TypedArray tArray = context.obtainStyledAttributes(attrs, R.styleable.MRadioButton);

        //   value      mValue  

    this.mValue = tArray.getString(R.styleable.MRadioButton_value);

        //  tArray  

    tArray.recycle();

    }

5、MainActivityのレイアウトファイルにMRadioButtonコンポーネントを追加する.以下に示す.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    xmlns:jereh="http://schemas.android.com/apk/res/com.jereh. view"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="com.example.zdyview.MainActivity" >



    <com.itc.zidingyiview.MRadioButton

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:id="@+id/mrb"

        jereh:value="hello"

        />



</RelativeLayout>

6、MainActivityコード:
public class MainActivity extends Activity {

    private MRadioButton rb;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        rb=(MRadioButton)super.findViewById(R.id.mrb);

        rb.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

Toast.makeText(MainActivity.this, rb.getmValue(),Toast.LENGTH_LONG).show();

            }

        });

    }

}

ラジオボタンをクリックするとhello情報が表示されます
 
作成者:
ジェリー教育
出典:
http://www.cnblogs.com/jerehedu/  
本文の著作権は煙台ジェリー教育科学技術有限会社とブログ園に共有され、転載を歓迎するが、著者の同意を得ずにこの声明を保留し、文章のページの明らかな位置で原文の接続を与えなければならない.そうしないと、法律責任を追及する権利を保留する.