2011-05-20 23 views
6

Odağın altındaki görüntünün rengini değiştirmek istiyorum; Benim durumumda bir tablo satırı.Odaklanmış görünümün arka plan rengini nasıl değiştirirsiniz?

Bu benim geçerli kodum, ancak çalışmıyor.

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

Bu kodu – ingsaurabh

+0

kullanarak özür dilerim .. düzenlenmiş birine bakın .. bunu yaptıktan sonra tüm satır rengini değiştirdikten sonra renk değiştirir .. ve birden fazla satır evry satırını seçerek o rengi devam ettirir .. Eğer koşulu isFocussed() kullanarak çalıştı .. işe yaramadı – ngesh

+0

Bu konuda emin değilim, ama bana göre, masanın renginin odakta değişmez. Bunun için ListView kullanabilirsiniz –

cevap

1

İşte ben bu örneğin LinearLayout kullanmak http://life-as-a-coder.com/_shared/background_state.rar

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

bir göz atın ... sizin için bazı örnek olun. Ben ...

benim kötü İngilizce için üzgünüm n dilbilgisi ... Bu çok ListView kullanılabilir ... tık durumunu etkinleştirmek yalnızca özel satır öğesi üzerinde kullanmak android:clickable="true" set oluyor aslında ne

0

@nagesh bu bağlantı bu

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

gibi bir xml oluşturmak senin sorunun OnClick change tablerow background color

+0

Odak altında olduğunda rengini değiştirmek gerekir ... herhangi bir fikir ..? – ngesh

+0

@nagesh u buradaki StateListDrawable'ı kullanarak bunu gerçekleştirebilir, aynı http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – PCS

1
XML çekilebilir kullanabilirsiniz

,
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

çözecektir ve arka plana ihtiyacımız pic için bu

+0

k bağlantısının bağlantısıdır. eğer bu işe yararsa .. yukarıdaki xml dosyası yapıştırılmış olmalıdır yeniden dizin el ile sanırım ...? – ngesh

+0

evet .. xml res/drawable klasörüne koymalı .. –

+0

Cevabınız sizin için işe yaraydı ya da aldığınız çıktıyı yanıtlamanız gerekir. Eğer bu cevap işe yaramadıysa size yardımcı olabiliriz. :) –

İlgili konular