2012-11-30 27 views
0

我想在文本中設置strikethough當用戶單擊listView內的複選框。假設我有三個項目內的listView,但是當我點擊第一項中的複選框,它只在文本strikethough最後一項。在列表視圖中設置Strikethough文本android

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     listView = (ListView) findViewById(R.id.productList); 
     model = helper.getAllProduct(list); 
     startManagingCursor(model); 

     listView.setAdapter(new ShoppingListAdapter(this,model)); 
     class ShoppingListAdapter extends ResourceCursorAdapter { 

     public ShoppingListAdapter(Context context ,Cursor c) { 
      super(context,R.layout.productrow,c); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     public void bindView(View row, Context context, Cursor c) { 
      // TODO Auto-generated method stub 
      listName = (TextView) row.findViewById(R.id.produtName); 
      final CheckBox listCheck=(CheckBox)row.findViewById(R.id.check); 
      listCheck.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(CompoundButton view, boolean isChecked) { 
         // TODO Auto-generated method stub 
         if(listCheck.isChecked()){ 
           listName.setPaintFlags(listName.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 
          //listName.setTextColor(_context.getResources().getColor(R.color.red)); 
         // listName.setText("go"); 
         } 
        } 

        }); 

有人知道wat是我的錯嗎?

+0

也在onCheckedChange之外設置標誌,對於已經檢查過的標誌。 – Doomsknight

+0

設置標誌外?意思是我也在外面設置了PaintFlag?對不起,我是新的Android編程.. – johnk

回答

1

Lalit Poptani是正確的,這是因爲listview的回收機制。當滾動列表時,已經創建的視圖將被重用。而滾動getview()方法將被調用。所以你必須檢查複選框是否被選中。如果檢查你必須設置油漆標誌,並不意味着你必須刪除油漆標誌。

if(isChecked){ 
    txtview.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG); 
}else{ 
    txtview.setPaintFlags(task_text.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG)); 
} 
+0

雅,這就是我想要做的....但問題仍然存在 – johnk

3

嘗試

listName.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG); 

它的工作在我的情況。

+0

雅,這是工作..但是當我點擊第一項中的複選框,它只在最後一項setPaintFlag。 – johnk

+0

我認爲這是由於最終關鍵字與您的複選框的問題。 –

+0

我負責私人..但現在的問題是隻能在最後一項setPaintFlag ...第一項沒有任何變化。 – johnk

相關問題