2011-08-26 108 views
3

我嘗試設置一個textview的背景,當我點擊它們。但是當我點擊全局佈局時,所有textviews都會改變背景。點擊一個佈局導致所有的textview改變顏色

佈局文件,我用作列表視圖中的項目,當我點擊此列表中的項目時,所有文本視圖都會更改顏色(綠色)。

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_margin="3dip" 
    android:padding="6dip" 
    android:layout_width="fill_parent" 
    android:background="@drawable/lines" 
    android:orientation="vertical" 
    android:id="@+id/ll_main"> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_marginTop="4dip" 
     android:id="@+id/ll_content"> 

     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      style="@style/VotePlus" 
      android:text="Plus" 
      android:id="@+id/tv_vote_plus" 
      android:background="@drawable/change_tv_bg"/> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      style="@style/VoteMinus" 
      android:text="Minus" 
      android:id="@+id/tv_vote_minus" 
      android:background="@drawable/change_tv_bg"/> 
    </LinearLayout> 

</LinearLayout> 

change_tv_bg內容

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

有任何人遇到這個問題?

PS:對不起我的英文不好,我是法國人=)

回答

0

是整個佈局與textViews是你的ListView項?

如果它那樣,我認爲當你點擊listItem時,ListView將你所有的textView設置爲關注狀態。嘗試改變你的XML文件中的顏色,並調試發生了什麼。

我從來沒有經歷過類似的事情:/

+0

是LinearLayout id ll_main是ListView項目。我嘗試了不同的參數作爲state_pressed,聚焦(在選擇器中)...和多種顏色,但每次我按這個全局佈局所有孩子得到的狀態按下爲真,並集中爲假(在選擇器文件中)。我已嘗試啓用/禁用android:descendantFocusability,並啓用/禁用android:duplicateParentState,以應用於我的listview mListView.setItemsCanFocus(false); ListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);但不起作用。 我變得瘋狂:/ – Ahmet