查看: 564|回复: 0

[Android教程] Android实现读取SD卡下所有TXT文件名并用listView显示出来的方法

发表于 2017-11-28 08:00:01

本文实例讲述了Android实现读取SD卡下所有TXT文件名并用listView显示出来的方法。分享给大家供大家参考,具体如下:

MainActivity.Java

  1. package com.zxl;
  2. import java.io.File;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import android.app.Activity;
  6. import android.os.Bundle;
  7. import android.os.Environment;
  8. import android.util.Log;
  9. import android.widget.ListView;
  10. import android.widget.SimpleAdapter;
  11. public class Txt_sdkaActivity extends Activity {
  12. private ListView lv;
  13. ArrayList name;
  14. /** Called when the activity is first created. */
  15. @Override
  16. public void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main);
  19. lv = (ListView) findViewById(R.id.lv);
  20. name = new ArrayList();
  21. if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  22. File path = Environment.getExternalStorageDirectory();// 获得SD卡路径
  23. // File path = new File("/mnt/sdcard/");
  24. File[] files = path.listFiles();// 读取
  25. getFileName(files);
  26. }
  27. SimpleAdapter adapter = new SimpleAdapter(this, name, R.layout.pes, new String[] { "Name" }, new int[] { R.id.txt_tv });
  28. lv.setAdapter(adapter);
  29. for (int i = 0; i < name.size(); i++) {
  30. Log.i("zeng", "list. name: " + name.get(i));
  31. }
  32. }
  33. private void getFileName(File[] files) {
  34. if (files != null) {// 先判断目录是否为空,否则会报空指针
  35. for (File file : files) {
  36. if (file.isDirectory()) {
  37. Log.i("zeng", "若是文件目录。继续读1" + file.getName().toString() + file.getPath().toString());
  38. getFileName(file.listFiles());
  39. Log.i("zeng", "若是文件目录。继续读2" + file.getName().toString() + file.getPath().toString());
  40. } else {
  41. String fileName = file.getName();
  42. if (fileName.endsWith(".txt")) {
  43. HashMap map = new HashMap();
  44. String s = fileName.substring(0, fileName.lastIndexOf(".")).toString();
  45. Log.i("zeng", "文件名txt:: " + s);
  46. map.put("Name", fileName .substring(0, fileName.lastIndexOf(".")));
  47. name.add(map);
  48. }
  49. }
  50. }
  51. }
  52. }
  53. }
复制代码

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <TextView
  7. android:id="@+id/textView1"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello" />
  11. <ListView
  12. android:id="@+id/lv"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:layout_alignParentLeft="true"
  16. android:layout_below="@+id/textView1"
  17. android:layout_marginTop="62dp" >
  18. </ListView>
  19. </RelativeLayout>
复制代码

pes.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <TextView
  7. android:id="@+id/txt_tv"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:textSize="20pt"
  11. android:layout_weight="1"
  12. />
  13. </LinearLayout>
复制代码

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android编程开发之SD卡操作方法汇总》、《Android文件操作技巧汇总》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。



回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条