Android Item长按弹出删除,点击删除执行删除对应的文件
我用ArrayList的方式显示了存储卡某个文件件内的文件的列表,AdapterView添加了点击的事件,但是我想添加一个长按点击弹出菜单,里面有删除按钮,点击删除按钮删...
我用ArrayList的方式显示了存储卡某个文件件内的文件的列表,AdapterView添加了点击的事件,但是我想添加一个长按点击弹出菜单,里面有删除按钮,点击删除按钮删除对应的文件夹内的那个文件,并刷新列表。我现在遇到的问题是,我怎么获取那个文件的地址,这个是最大的问题。希望高手们能给小弟一个Demo或者一些指点,我刚接触Android,谢谢
我简单的贴了下代码,希望各位帮我看下行么?在网盘中
http://pan.baidu.com/share/link?shareid=738293995&uk=706528506
谢谢了 展开
我简单的贴了下代码,希望各位帮我看下行么?在网盘中
http://pan.baidu.com/share/link?shareid=738293995&uk=706528506
谢谢了 展开
5个回答
展开全部
public class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int arg0) {
return list.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override//最主要的重写方法
public View getView(int arg0, View arg1, ViewGroup arg2) {
View view = View.inflate(显示list的Activity.this,
ListView的item是个xml布局文件(R.layout.????), null);
Button bt_enter = (Button) view.findViewById(R.id.bt_enter);
//获取ListView的一个控件,这里面获取了一个Button
//注意看,有一个参数int arg0,这个参数很重要是这个item在listView的位置
//声明一个final的值,并把arg0的值赋值给他
final int position=arg0;
bt_enter.setOnClickListener(new OnclickListenner(){
//重写方法,你懂的
//在这里就可以操作position对应的条目
});
return view;
}
}
写一个内部类,Myadapter继承BaseAdapter,在需要把listView适配的地方listView.setAdapter(new MyAdapter());
展开全部
你是怎么得到文件名的??怎么会没有路径
你在取文件名的时候,把它的完整路径也加入一个ArrayList,点击的时候用position去删除
你在取文件名的时候,把它的完整路径也加入一个ArrayList,点击的时候用position去删除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把Item对应position的信息保存了 长按事件得到position再做操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
文件的地址就是你的Listview填充的数据的某一项,你可以通过监听里的position去定位.demo你可以去eoe,csdn,oschina等社区找.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View view,
int position, long id) {
DeleteDialog();
return false;
}
});
/**
* 退出系统确认框
*/
private void DeleteDialog() {
AlertDialog.Builder builder = new Builder(ShowActivity.this);
builder.setMessage("确定删除文件?");
builder.setTitle("提示");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//这里File构造方法参数就是从你list读取的文件路径
File file = new File(listItem.get(index));
file.delete();
//通知adapter 更新
adapter = new AAAdapter(this, list);
listView.setAdapter(adapter);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
//文件路径你不是保存在list里了,通过positon 直接拿就OK了。。。。
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View view,
int position, long id) {
DeleteDialog();
return false;
}
});
/**
* 退出系统确认框
*/
private void DeleteDialog() {
AlertDialog.Builder builder = new Builder(ShowActivity.this);
builder.setMessage("确定删除文件?");
builder.setTitle("提示");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//这里File构造方法参数就是从你list读取的文件路径
File file = new File(listItem.get(index));
file.delete();
//通知adapter 更新
adapter = new AAAdapter(this, list);
listView.setAdapter(adapter);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
//文件路径你不是保存在list里了,通过positon 直接拿就OK了。。。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |