2011-05-20 12 views
6

मैं फोकस के तहत दृश्य का रंग बदलना चाहता हूं; मेरे मामले में यह एक टेबल पंक्ति है।फोकस किए गए दृश्य के पृष्ठभूमि रंग को कैसे बदलें

यह मेरा वर्तमान कोड है, लेकिन यह काम नहीं करता है।

  r.setOnTouchListener(new OnTouchListener(){ 
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       {    { 
        arg0.setBackgroundColor(Color.LTGRAY); 
        r.setFocusableInTouchMode(true); 
       } 
      return false; 
     }}); 
+0

वास्तव में क्या हो रहा है इस कोड का उपयोग करके – ingsaurabh

+0

क्षमा करें .. संपादित किए गए एक को देखें .. ऐसा करने के बाद, जब मैं उस पर क्लिक करता हूं तो पूरी पंक्ति रंग बदल जाती है .. और कई पंक्तियों को चुनने के लिए evry row उस रंग को बनाए रखती है .. मैंने स्थिति में फ़ोकस किए गए() का उपयोग करने की कोशिश की .. – ngesh

+0

काम नहीं किया है, मुझे इसके बारे में निश्चित नहीं है, लेकिन मेरे अनुसार tablerow का रंग फोकस पर नहीं बदलता है। आप इसके लिए ListView का उपयोग कर सकते हैं –

उत्तर

1

यहाँ मैं आप के लिए कुछ उदाहरण हैं ... http://life-as-a-coder.com/_shared/background_state.rar

मेरी main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dip" 
     android:background="@drawable/item_background" 
     android:clickable="true"> 
     <TextView 
      android:text="Item 1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="35dip"></TextView> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dip" 
     android:background="@drawable/item_background" 
     android:clickable="true"> 
     <TextView 
      android:text="Item 2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="35dip"></TextView> 
    </LinearLayout> 
</LinearLayout> 

पर एक नजर डालें मैं इस उदाहरण के लिए LinearLayout का उपयोग करें। मैं क्लिक राज्य ... यह भी ListView में इस्तेमाल किया जा सकता सक्रिय करने के लिए ... बस कस्टम पंक्ति आइटम पर उपयोग ...

मेरा बुरा अंग्रेजी के लिए खेद है n व्याकरण android:clickable="true" सेट

0

@nagesh इस लिंक आपकी समस्या OnClick change tablerow background color

+0

मुझे इसके रंग को बदलने की जरूरत है जब यह फोकस के तहत ... कोई विचार ..? – ngesh

+0

@nagesh आप एंड्रॉइड में स्टेटलिस्ट ड्रायबल का उपयोग कर इसे प्राप्त कर सकते हैं, वही http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – PCS

1

आप एक्सएमएल drawable उपयोग कर सकते हैं,
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

का समाधान होगा इस

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
      android:drawable="@drawable/button_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 

की तरह एक एक्सएमएल बना सकते हैं और आप पृष्ठभूमि की जरूरत है उस

के लिए तस्वीर
+0

k धन्यवाद के लिए लिंक है .. मुझे देखने दो अगर यह काम करता है .. उपर्युक्त एक्सएमएल फ़ाइल चिपकाना चाहिए मैन्युअल रूप से res निर्देशिका है मुझे लगता है ...? – ngesh

+0

हाँ .. xml को res/drawable फ़ोल्डर में रखना चाहिए .. –

+0

अगर आपको यह आपके लिए काम करता है या आपको क्या आउटपुट मिलता है तो जवाब देना चाहिए। इसलिए अगर हम इस उत्तर पर काम नहीं करते हैं तो हम भी आपकी मदद कर सकते हैं :) –

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