2014-02-06 47 views
0

当我在我的ListView选择项目和使用longClick,无法在Android的ListView中删除项目超过一次

我希望它从我的ListView中删除,但之后我删除一个

我可以不要删除其他项目,所以我需要帮助。

我做错了什么? ::我认为它大约在onItemLongClick

文件[i]于if条件,但现在我不知道所有..

public class Screen2 extends Activity implements AdapterView.OnItemLongClickListener { 

    ListView listview1; 
    private ArrayAdapter<String> adapter1; 
    private File[] files; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.screen2); 
     setupGUI(); 
     adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1); 


     File f = new File("/sdcard/"); 
     files = f.listFiles(); 
     for(File ff:files){ 
      if(ff.isFile() ==true){ 
       adapter1.add("file " + ff.getName()); 
      } 
      else if(ff.isDirectory() == true){ 
       adapter1.add("Dir "+ ff.getName()); 
      } 
     } 

     listview1.setAdapter(adapter1); 
     listview1.setOnItemLongClickListener(this); 
    } 

    public void setupGUI() { 
     listview1 = (ListView) findViewById(R.id.listview1); 
    } 

    @Override 
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { 

     if (files[i].isFile() == true){ 

      String fname = "/sdcard/" + files[i].getName(); 
      AA.killSDFile(fname); 
      AA.Msg(this, "file is removed", 0); 


      adapter1.remove((String)adapterView.getItemAtPosition(i)); 

      Log.d("file:", fname+" is killed"); 
     } 
     return true; 
    } 
} 

回答

0

需要刷新由notifyDataSetChanged ListView的数据()函数并需要在长按事件回忆此功能

File f = new File("/sdcard/"); 
files = f.listFiles(); 
for(File ff:files){ 
    if(ff.isFile() ==true){ 
     adapter1.add("file " + ff.getName()); 
    } 
    else if(ff.isDirectory() == true){ 
     adapter1.add("Dir "+ ff.getName()); 
    } 
} 

listview1.setAdapter(adapter1); 

检查此问题,请让我知道如果你有任何问题。