项目需要,使用ListView把存储卡中的某个文件夹下的文件列出来,并且可以对这些文件进行删除处理。

1、布局文件line.xml

用来布局ListView每一项的样式

一个图片文件、一个文本显示、一个选择框,其中CheckBox要做失焦处理,因为我们想要的是点击后进入ListView的监听函数

失焦处理:

android:clickable="false"android:focusable="false"android:focusableInTouchMode="false"

android:id="@+id/icon"   android:layout_width="40dp"   android:layout_height="40dp"    android:paddingLeft="10dp"/>android:id="@+id/file_name"   android:layout_width="wrap_content"    android:layout_height="wrap_content"   android:layout_toRightOf="@+id/icon"   android:textSize="30dp"   android:textColor="@android:color/white"/>         android:id="@+id/checkBox"      android:text=""      android:layout_width="78dp"      android:layout_height="wrap_content"      android:layout_alignBottom="@+id/file_name"      android:layout_alignParentRight="true"      android:layout_alignParentEnd="true"      android:focusable="false"      android:clickable="false"      android:focusableInTouchMode="false"/>

2、布局文件main.xml

用ListView显示文件,按钮操作文件,共4个按钮:确认删除,全部选择,取消选择,取消删除。

    android:id="@+id/listview"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_above="@+id/line"    android:layout_alignParentTop="true">    android:id="@+id/line"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_alignParentBottom="true"    android:orientation="horizontal">            android:id="@+id/affirm"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="确认删除"        android:textSize="50sp"        android:layout_weight="1"/>            android:id="@+id/selectAll"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="全部选择"        android:textSize="50sp"        android:layout_weight="1"/>            android:id="@+id/cancelselect"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="取消选择"        android:textSize="50sp"        android:layout_weight="1"/>            android:id="@+id/cancel"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="取消删除"        android:textSize="50sp"        android:layout_weight="1"/>

3.、Main.java文件

//定义存放在drawable文件夹下的file.png文件import static com.nialt.www.listview.R.drawable.file;public class MainActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemLongClickListener, AdapterView.OnItemClickListener {   //定义组件    ListView listView;    Button affirm;    Button selectAll;    Button cancelselect;    Button cancel;    List,Object>> listitems;    SimpleAdapter simpleAdapter;    CheckBox checkBox1;    @Override    public void onResume()    {        super.onResume();        //绑定组件并且定义监听函数        listView=(ListView)findViewById(R.id.listview);        listView.setOnItemLongClickListener(this);        listView.setOnItemClickListener(this);        affirm=(Button)findViewById(R.id.affirm);        selectAll=(Button)findViewById(R.id.selectAll);        cancelselect=(Button)findViewById(R.id.cancelselect);        cancel=(Button)findViewById(R.id.cancel);        affirm.setOnClickListener(this);        selectAll.setOnClickListener(this);        cancelselect.setOnClickListener(this);        cancel.setOnClickListener(this);        File sdcardDir = Environment.getExternalStorageDirectory();        //得到一个路径,内容是sdcard的文件夹路径和名字        String path=sdcardDir.getPath();        File path1 = new File(path+"/RBMFILE");        File[] files=path1.listFiles();        listitems=new ArrayList,Object>>();        for (int i=0;ilength;i++)        {            Map,Object> listitem=new HashMap,Object>();            listitem.put("icon", file);            listitem.put("file_name", files[i].getName());            listitem.put("checkBox", false);            listitems.add(listitem);        }        //创建一个SimpleAdapter        simpleAdapter=new SimpleAdapter(getApplicationContext(),                listitems,                R.layout.line,                new String[]{"icon","file_name","checkBox"},                new int[]{R.id.icon,R.id.file_name, R.id.checkBox});        listView.setAdapter(simpleAdapter);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {        Log.v("长按输出","长按输出");        return false;    }    @Override    public void onClick(View view) {        Button button=(Button)view;        if (button==affirm)        {            for (int i=0;i<listitems.size();i++)            {                //寻找选中的项                if (listitems.get(i).get("checkBox").toString().equals("true"))                {                    String s=listitems.get(i).get("file_name").toString();                    Log.v("文件名称",s);                }            }        }        else if (button==selectAll)        {            for (int i=0;i<listitems.size();i++)            {                listitems.get(i).put("checkBox",true);                simpleAdapter.notifyDataSetChanged();            }        }        else if (button==cancelselect)        {            for (int i=0;i<listitems.size();i++)            {                if (listitems.get(i).get("checkBox").toString().equals("true"))                {                    listitems.get(i).put("checkBox",false);                    simpleAdapter.notifyDataSetChanged();                }            }        }        else if (button==cancel)        {            Log.v("取消删除","cancel");        }    }        @Override        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {            String s=listitems.get(i).get("checkBox").toString();            if (s.equals("false"))            {                listitems.get(i).put("checkBox",true);            }            else            {                listitems.get(i).put("checkBox",false);            }            simpleAdapter.notifyDataSetChanged();            }}

4、实现效果,真机运行的,直接拍图了



更多相关文章

  1. 拥抱Android(安卓)Studio:从ADT到Android(安卓)Studio
  2. Android&Java的学习新的等
  3. Android(安卓)Framework 导入到AS中
  4. 2013.11.04(3)——— android 创建公共库以及使用公共库
  5. Android反向进度条(ProgressBar)的实现——从右到左的进度条
  6. Launcher3 总结
  7. Android(三):远程Service基本操作
  8. Android(安卓)Styles & Themes(上)——Style
  9. Android(安卓)自定义线程池

随机推荐

  1. Activity-RelativeLayout
  2. Android:EditText 多行显示及所有属性
  3. android ListView 去除下划线和选中模式
  4. Android:Material Design(三) 动画
  5. Android系统自带样式Android:theme
  6. android Style属性介绍
  7. Android(安卓)textAppearance的属性设置
  8. android:inputType参数类型说明
  9. Android应用开发——系统自带样式Android
  10. Google的Android设备别名