无法使用ArrayList填充ListView

时间:2014-07-25 05:45:50

标签: java android android-listview arraylist

我正在尝试制作一台录音机,我想要显示到目前为止完成的录音列表。

我能够将列表记录的文件从我的SD卡中导入到ArrayList中,但是当我的应用程序尝试填充列表视图时崩溃了。

使用MainActivity.java中的Intent调用ListRecordings.java。

以下是ListRecordings.java:

public class ListRecordings extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.listrecordings);
    ListView lv;
    String path = Environment.getExternalStorageDirectory()
            .getAbsolutePath() + "/MyAudioRecorder";

    ArrayList<String> FilesInFolder = GetFiles(path);

    lv = (ListView) findViewById(R.id.filelist);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.textlayout,
            FilesInFolder); 

    lv.setAdapter(adapter);

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {
            // Clicking on items
        }
    });
}



public ArrayList<String> GetFiles(String DirectoryPath) {
    ArrayList<String> MyFiles = new ArrayList<String>();
    File f = new File(DirectoryPath);

    f.mkdirs();
    File[] files = f.listFiles();

    if (files.length == 0)
        return null;
    else {
        for (int i = 0; i < files.length; i++)
            MyFiles.add(files[i].getName());
    }

    return MyFiles;
}
}

这里是listrecordings.xml的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/filelist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

这里是textlayout.xml的代码

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/label"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp"
    android:textStyle="bold" >
</TextView>

感谢任何帮助。

我刚开始使用android,请原谅我,如果我犯了任何蹩脚的错误。

谢谢

2 个答案:

答案 0 :(得分:1)

您在onCreate()

中遗漏了这一行
super.onCreate(savedInstanceState);

答案 1 :(得分:0)

添加类似这样的内容

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.textlayout, R.id.textview_id_in_textlayout,FilesInFolder);

我希望这会有所帮助。