当我在listView中选择项目并使用longClick时,
我希望它从我的listView中删除但是在删除一个
之后我无法删除其他项目,因此需要帮助。
我做错了什么? ::我认为它关于onItemLongClick
中if条件下的文件[i]但是现在我根本没有想法..
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 :(得分:0)
您需要通过notifyDataSetChanged()函数刷新列表视图数据,并需要在长按事件中调用此函数
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);
检查一下,如果您有任何问题,请告诉我。