2011-10-19 61 views
0

我正在Android中執行購物清單,爲此我將產品存儲在SQLite數據庫中。Android ListView刪除線文本

該產品是可點擊的,以便他們應該刪除刪除線。更新數據庫工作正常,但刪除線不在正確的項目上。 /** * 從加載數據庫列表,將數據放入ListView和打擊通過非活動產品 */

public void loadListe() 
{ 
//---get all titles--- 
    meineListe.clear(); 
    adapter.clear();  

    db.open(); 
    Cursor c = db.getAllTitles(); 
    ArrayList<String> strikedItems = new ArrayList<String>(); 
    strikedItems.clear(); 
    if (c.moveToFirst()) 
    { 
     do {    
      if (c.getInt(0)==1) { 
       meineListe.add(c.getString(1)); 
       strikedItems.add(c.getString(1)); 
      } 
      else meineListe.add(c.getString(1)); 
     } while (c.moveToNext()); 
    } 
    db.close();  
    //Strike Through on inactive Items 
    list = this.getListView(); 
    for (int i = 0; i < list.getChildCount(); i++) { 

    LinearLayout row = (LinearLayout) list.getChildAt(i); 
    TextView title; 
    title = (TextView) row.getChildAt(0); 
    //System.out.println("zeile "+i+ " "+title.getText()); 

    if(strikedItems.contains(title.getText())) 
    { 
     title.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); 
     System.out.println("zeile "+i+ " Title: "+title.getText()); 
     title.setTextColor(0xFFFF0000); //black 

    }  
} 

回答

1

ListView控件的子視圖只這在當時是可見的那些項目,整個項目的數組。

您不需要像這樣迭代它們,您需要從Adapter.getView()實現中設置去除屬性。