2012-10-20 8 views
13

मैं एंड्रॉइड और जावा के लिए नया हूं लेकिन मुझे खुद को सिखाने में कामयाब रहा है और प्रश्न पूछने की आवश्यकता के बिना स्टैक ओवरफ्लो पर सवालों के अधिक जवाब मिल गया है। अब तक ....बदलें बटन एंड्रॉइड: अलग-अलग ड्रॉइंग करने योग्य पृष्ठभूमि

यहां जाता है, मेरे पास कई रंगीन बटन हैं, जब क्लिक किया जाता है, रंग अलग-अलग रंगों की एक श्रृंखला में बदलते हैं।

कई बटन के रूप में उदाहरण के लिए परिभाषित कर रहे हैं:

<Button 
    android:id="@+id/button17" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:background="@drawable/orange_button" 
    android:gravity="center" 
    android:onClick="onClick" /> 

कोई मुझे कृपया सलाह कैसे एंड्रॉयड बदलने के लिए किया जा सका: पृष्ठभूमि बटन क्लिक होने, उदाहरण के लिए पीले रंग के लिए ऊपर के उदाहरण को बदलने के लिए कोड का उपयोग कर, ।

नीचे दिए गए कोड में बटन बटन की आईडी है जिसके लिए मुझे पृष्ठभूमि को बदलने की आवश्यकता है।

public void onClick(View v) { 
    int id=v.getId(); 
    String clickedButton = getResources().getResourceEntryName(id); 

    Change button to Yellow here?? 

    // Temporary code below to check which button was pressed 
    // and convert its number to an integer to eventually access an array 

    final TextView tvGameTimer = (TextView) findViewById(R.id.tvGameTimer); 
    int buttonNumber = Integer.parseInt(clickedButton.substring(6,8)); 
    tvGameTimer.setText("" + buttonNumber); 

    } 

मैं कस्टम बटन शैलियों का उपयोग कर रहा बटन रंग को परिभाषित करने के:

res/drawable/yellow_button.xml 
res/drawable/blue_button.xml 
res/drawable/red_button.xml 
res/drawable/orange_button.xml 
res/drawable/green_button.xml 

अब मैं सिर्फ बाहर काम करने के ऑरेंज से पीला करने के लिए बटन को बदलने के तरीके की जरूरत के लिए। इसके बाद मैं ऐप की आवश्यकता होने पर रंग बदलने के लिए तर्क जोड़ सकता हूं।

किसी भी मदद के लिए बहुत धन्यवाद।

उत्तर

20

मुझे लगता है कि आपके द्वारा पोस्ट की जाने वाली ऑनक्लिक विधि एक ही बटन है जिसका पृष्ठभूमि आप बदलने की कोशिश कर रहे हैं। इस कोड का प्रयोग करें।

v.setBackgroundResource(R.drawable.yellow_button); 

तो onClick एक ही बटन की विधि तो नहीं है, का उपयोग

findViewById(R.id.button17).setBackgroundResource(R.drawable.yellow_button); 
+1

वाह। क्या समुदाय है! सटीक। ऑनक्लिक विधि एक ही बटन पर है, मुझे बदलने की जरूरत है ताकि आपका पहला समाधान पहली बार काम करेगा। क्लिक किए जाने पर अब सभी बटन पीले रंग की हो जाते हैं! अब मैं तर्क के साथ दबा सकता हूं। धन्यवाद। –

+0

जब मैं गतिविधि को किसी अन्य गतिविधि में छोड़ देता हूं और पहले व्यक्ति पर वापस आ जाता हूं तो पृष्ठभूमि वापस खींचने योग्य नहीं होती है। – Si8

+0

@ SiKni8 जो प्रभाव आप चाहते हैं, उसके लिए आपको का उपयोग करना चाहिए – jaimin

2
Button btn = (Button) findViewById(R.id.button17); 
btn.setBackground(this.getResources().getDrawable(R.drawable.yellow_button)); 

इसे आजमाएं।

+0

विधि getDrawable (int) प्रकार संसाधन से मान्य नहीं है। –

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