2010-12-11 91 views
1

CheckedTextView出現問題,我似乎無法找到解決方案。我甚至不完全確定發生了什麼。Android ListView CheckedTextView閃爍

我有一個自定義ListView,其行包含TextViews和CheckedTextView。

row.xml

<CheckedTextView 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:id="@+id/title" 
    android:text="Name" 
    android:gravity="center_vertical" 
    android:paddingRight="6dip" 
    android:typeface="sans" 
    android:checkMark="?android:attr/textCheckMark" 
    android:textSize="16sp" 
    android:textStyle="bold"/> 

MyAdapterView.java

public class RuleAdapterView extends LinearLayout 
{ 
    private CheckedTextView title; 

    ... 

    title = (CheckedTextView)v.findViewById(R.id.title); 
    title.setText(entry.getName()); 
    title.setChecked(entry.isActive()); 

    // setup a listener for the checkbox 
    title.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) 
     { 
      ((CheckedTextView) v).toggle(); 
     } 
    }); 
} 

我ListView控件設置爲android:choiceMode="multipleChoice"主XML文件英寸

所以我想要的是ListView行是長和短可點擊的,而CheckedTextView是單獨的點擊執行。這適用於CheckedTextView的文本部分的例外。無論何時按下CheckedTextView,文本「閃爍」。我慢慢弄清楚究竟發生了什麼。當您按下CheckTextView時,白色文本會消失或切換爲黑色(可能會反轉?),當您釋放時,文本會再次出現,並且複選標記會切換。按下ListView時沒有「閃爍」效果。

關於這裏發生了什麼的任何想法?

感謝

+0

我有同樣的問題。我點擊了一個CheckedTextView。它被選中,但過了一段時間(幾毫秒)後,它被取消選中。 但是,當我滾動(即選擇)與鼠標滾輪,然後它保持並轉移選擇。 嗯? 謝謝 – 2011-01-16 15:17:26

+0

是的,我還沒有找到解決方案。讓我知道如果你這樣做。 – linsek 2011-01-17 16:47:22

回答

0

而不是使用OnClickListener你應該嘗試使用OnTouchListener

ckToggle.setOnTouchListener(new View.OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent event) { 
       CheckedTextView ck = ((CheckedTextView) v); 
       ck.toggle(); 
       return false; 
      } 
     });