我正在嘗試製作一個錄音機,爲此我要顯示迄今完成的錄音列表。無法使用ArrayList填充ListView
我能夠從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,所以如果我犯了任何蹩腳的錯誤,請原諒。
感謝
張貼堆棧跟蹤PLS – Raghunandan
你有什麼錯誤?請在這裏發佈你的logcat錯誤 –
我認爲問題是'R.layout.textlayout',我不確定,但我不認爲你可以在這裏傳遞一個xml,而是一個Id。 – Leonardo