2011-04-04 36 views
0

我在ListView(simple_list_item_multiple_choice)中顯示正在運行的任務,並使用按鈕的onClick事件從列表中刪除已檢查的任務,因爲我們無法在android中完全終止任務,因此我已設置Timer以在每5秒後重新加載這些任務。Android - 如何在ListView中刪除一個項目而不選中它?

我正在使用一個簡單的CheckBox小部件一次檢查所有這些CheckBoxListview

所以我的問題是,如果我的CheckBox小部件設置爲選中狀態,但我無法做到這一點,我希望在重新加載時檢查新項目。

這裏是我的代碼: -

public void reloadTasks() 
{ 
    int listInitSize = list.size(); 
    try 
    { 
     List<ActivityManager.RunningAppProcessInfo> tasks = am.getRunningAppProcesses(); 
     int numOfTasks = tasks.size(); 
     for(int i = 0; i < numOfTasks; i++) 
     { 
      ActivityManager.RunningAppProcessInfo task = tasks.get(i); 
      boolean doAdd = true; 
      HashMap<String, String> item = new HashMap<String, String>(); 
      item.put("Process", task.processName); 
      try 
      { 
       PackageInfo myPInfo = getPackageManager().getPackageInfo(task.processName, 0); 
       item.put("Name", myPInfo.applicationInfo.loadLabel(getPackageManager()).toString()); 
      } 
      catch (PackageManager.NameNotFoundException ne) 
      { 

      } 
      if(!list.isEmpty()) 
      { 
       if(list.contains(item)) 
       { 
        doAdd = false; 
       } 
       else 
       { 
        doAdd = true; 
       } 
      } 
      if(filter == true) 
      { 
       int size = SystemProcessList.length; 
       for (int j = 0; j < size; j++) 
       { 
        if(task.processName.indexOf(SystemProcessList[j]) > -1) 
        { 
         doAdd = false; 
        } 
       } 
      } 
      if(doAdd==true) 
      { 
       addItem(item); 
      } 

     } 
    } 
    catch (SecurityException se) 
    { 

    } 
    notes.notifyDataSetChanged(); 
    int size = list.size(); 
    int numOfLoop = list.size() - listInitSize; 
    for(int i = 1; i >= numOfLoop; i++) 
    { 
     if(cb.isChecked()) 
     { 
      lv.setItemChecked(size-i, true); 
     } 
    } 

} 

我試過的東西,以檢查在重新加載的項目,但它沒有工作,這種嘗試是不是讓我的應用程序,以獲取有關仿真器負載(未強制關閉只是一個空白屏幕)。

回答

相關問題