2012-10-22 76 views
0

我有列表視圖。爲此,我將每行定製爲文本視圖和複選框。現在我想要獲取已選中項目的名稱。我嘗試使用checkedItemPositons但那是行不通的,那是因爲2佈局?Android:使用複選框從自定義列表中檢查項目名稱

我想按刪除按鈕時刪除已選中的條目。我該如何做? 這裏我的代碼

 public class ManageLikes extends Activity implements OnClickListener { 

ListView lv; 
Button btndelsel, btndelall; 
CheckBox chk; 
HashMap<Integer, Boolean> mCartItems = new HashMap<Integer, Boolean>(); 

List<String> likes = new ArrayList<String>(); 
//DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.managelikes); 

    DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
    //String data[] = { "a", "b", "c", "d", "e"}; 
    likes = db.getAllLikes(); 

    lv = (ListView) findViewById(R.id.listView); 
    btndelsel = (Button) findViewById(R.id.btndelsel); 
    btndelall = (Button) findViewById(R.id.btndelall); 
    btndelsel.setOnClickListener(this); 
    btndelall.setOnClickListener(this); 

    lv.setCacheColorHint(0); 

    LayoutInflater mLInflater = getLayoutInflater(); 
    final LAdapter adapter = new LAdapter(getApplicationContext(),likes, mLInflater); 
    lv.setAdapter(adapter); 

} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    int count = likes.size(); 
    String checked = ""; 

    if (v == btndelsel) { 
     //i want delete the checked items here 
    } 


    if (v == btndelall) { 
     //delete all items 

    } 
    } 

    } 

回答

0

試試下面的辦法。

  1. 內部適配器有複選框的偵聽器,並在複選框單擊偵聽器時跟蹤某些數據結構中的選中項。
  2. 單擊刪除按鈕後,通過使用數據結構跟蹤檢查的項目,從數據源中刪除適當的數據,即數據庫。
  3. 刪除之後通過調用notifyDataSetChanged()更新適配器來刷新UI。
+0

謝謝您的建議。 –

+0

根據FAQ:http://stackoverflow.com/FAQ#signatures,*不*在您的帖子中添加簽名/標語(即「乾杯」)。此外,根據常見問題,請*不*在您的所有帖子中放置指向您網站的鏈接:http://stackoverflow.com/FAQ#promotion - 繼續這樣做會導致進一步的版主操作。 – casperOne

相關問題