2012-04-07 12 views
7

私の現在のアプリケーションにはいくつかのボタンがあります。それらはテキストとタグを除いてすべて同じです。各ボタンのすべてのボタン設定情報を繰り返す必要がなければ、main.xmlはもっと良くなります。Androidボタンテンプレートを作成できますか?

ボタンをテンプレートとして定義し、それをテンプレートとしてさらに使用する方法はありますか?この例では

、私は約10以下のを持っている:

<Button 
      android:id="@+id/button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="10dp" 
      android:text="Y" 
      android:typeface="monospace" 
      android:textSize="12pt" 
      android:tag="Y" 
      android:textColor="@color/button_text" 
      android:background="@drawable/grey_blank_48x48" 
      android:onClick="onButtonClicked"/> 

それは私が1を持っていた場合はいいこと、そしてこれらの9になります

<Button2 
      android:text="N" 
      android:tag="N"/> 

解像度

@Luksprogが言ったようにそれはかなりだった:

<style name="ASR33_button" > 
    <item name="android:id">@+id/button</item> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:padding">10dp</item> 
    <item name="android:textColor">@color/button_text</item> 
    <item name="android:background">@drawable/grey_blank_48x48</item> 
    <item name="android:onClick">onButtonClicked</item> 
    <item name="android:typeface">monospace</item> 
    <item name="android:textSize">12pt</item> 
</style> 

main.xmlはこのようなものを有する:

<Button 
      style="@style/ASR33_button" 
      android:tag="Y" 
      android:text="Y" 
      /> 

    <Button 
      style="@style/ASR33_button" 
      android:tag="N" 
      android:text="N" 
      /> 

これは日を運びます。

答えて

12

会社はstyle

あなたのxmlレイアウトの
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="btnlook" > 
     <item name="android:id">@+id/button</item> 
     <item name="android:layout_width">wrap_content</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:padding">10dp</item> 
     <item name="android:textColor">@color/button_text</item> 
     <item name="android:background">@drawable/grey_blank_48x48</item> 
     <item name="android:onClick">onButtonClicked</item> 
     <item name="android:typeface">monospace</item> 
     <item name="android:textSize">12pt</item> 
    </style> 
</resources> 

、その後:

<Button 
      style="@style/btnlook" 
      android:text="N" 
      android:tag="N"/> 
+0

バー、ちょうどそれを言うつもり:p。ダンノーはなぜ誰も提案しなかった... –

+0

+1まあ、私はむしろこれが存在すべきだと思った... –

0

あなたはselector

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#AAFFFFFF"/> 
    <corners android:bottomRightRadius="7dp" 
     android:bottomLeftRadius="7dp" 
     android:topLeftRadius="7dp" 
     android:topRightRadius="7dp"/> 

を作成し、ボタンを拡張し、繰り返しているすべてのものを設定し、カスタムビューを作ることができる10ボタンandroid:background="@drawable/that_selecter"

3

を設定することができます。説明したとおりに使用できますが、短縮名だけでなく完全修飾名も使用できます。

class MyButton extends Button { 
    public MyButton() { 
     // Set the values you want 
    } 
} 

そしてXMLで:

<com.me.myapp.MyButton 
    android:text="N" 
    android:tag="N" /> 
+0

+1、これは非常に便利です。 –

0

ボタンをサブクラス化カスタムボタンを作るために、これを行うための唯一の方法。