2012-04-07 14 views
7

मेरे वर्तमान ऐप में मेरे कई बटन हैं। वे सभी अपने पाठ और टैग को छोड़कर समान हैं। यदि मुझे प्रत्येक बटन के लिए सभी बटन कॉन्फ़िगरेशन जानकारी दोहराना नहीं है तो main.xml बहुत अच्छा होगा।क्या मैं एक एंड्रॉइड बटन टेम्पलेट बना सकता हूं?

क्या टेम्पलेट के रूप में बटन को परिभाषित करने का कोई तरीका है, और उसके बाद इसे टेम्पलेट के रूप में अधिक उपयोग करना है?

<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"/> 

यह अच्छा होगा यदि मैं एक है, और फिर 9 इनमें से पड़ा होगा::

इस उदाहरण में, मैं निम्नलिखित के बारे में 10 है

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

संकल्प

यह बहुत अधिक था क्योंकि @ लुकप्रोग ने कहा:

<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 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> 

और फिर अपने XML लेआउट में:

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

बह, बस यह कहने जा रहा है कि: पी। डुनो क्यों कोई सुझाव नहीं दिया ... –

+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 
    } 
} 

और एक्सएमएल में:

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

+1 यह बहुत ही उपयोगी है। –

0

बटन उपवर्गीकरण कस्टम बटन बनाने के लिए यह करने के लिए एक ही रास्ता।

संबंधित मुद्दे