2013-08-27 84 views
1

我已經在每一行中創建帶有複選框和textview(具有自定義背景)的列表視圖。 當我點擊一行時,複選框和文本視圖會突出顯示一個列表視圖行,但我希望在單擊行後突出顯示只有沒有複選框和文本視圖的列表視圖行。請問你能幫幫我嗎?突出顯示列表視圖行中沒有視圖

這是我點擊一行後想要的:http://tinypic.com/r/14kfpza/5

這是我點擊一行後所擁有的:http://tinypic.com/r/2mr5w9c/5

謝謝

我的適配器列表視圖:

public class MyAdapter<String> extends ArrayAdapter<String>{ 

    Context ctx; 
    List<String> content; 
    public MyAdapter(Context context, List<String> objects) { 
     super(context, R.layout.listview_row ,objects); 
     this.ctx = context; 
     this.content = objects; 
    } 

    public View getView(int position, View convertView, ViewGroup parent){ 
     View row = convertView; 
     if(row == null){ 
      LayoutInflater inflater=getLayoutInflater(); 
      row=inflater.inflate(R.layout.listview_row, parent, false); 
     } 
     TextView desc = (TextView)row.findViewById(R.id.textView1); 
     String name = content.get(position); 
     desc.setText(name.toString()); 

     return row; 
    } 



} 

listview_row.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="16dp" 
      android:layout_marginTop="16dp" 
      android:text="Large Text" 
      android:clickable="true" 
      android:focusable="false" 
      android:focusableInTouchMode="false" 
      android:background="@drawable/textview_bg" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <CheckBox 
      android:id="@+id/checkBox1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignTop="@+id/textView1" 
      android:layout_marginRight="5dp" 
      android:clickable="true" 
      android:focusable="false" 
      android:focusableInTouchMode="false" 
      android:text="" /> 

    </RelativeLayout> 

回答

0

OK,我已經解決了它,用定製的TextView,該setPressed方法被覆蓋。我也使用了CheckBox。

public class TextViewForListView extends TextView{ 

    public TextViewForListView(Context context) { 
     super(context); 

    } 
    public TextViewForListView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 
    public TextViewForListView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 
    @Override 
    public void setPressed(boolean pressed) { 
     if (pressed && (this.getParent() instanceof View) && ((View) this.getParent()).isPressed()) { 
      return; 
     } 
     super.setPressed(pressed); 
    } 

} 
0

寫這篇文章的ListView烏爾XML。 機器人:addStatesFromChildren =「假」

這將不會發送點擊事件的ListView孩子

+0

謝謝,但它不工作。 – FilipR