我有一个应用程序可以从存储设备中获取所有.mp3文件,我想在创建应用程序时将它们添加到ListView。我在列表中添加项目时迷失了方向。我用谷歌搜索了它,我不能很好地定义开发用途以及为什么要添加它们添加的内容。我希望有人告诉我如何将项目添加到ListView中,如果可以的话,还可以解释他们正在做什么,因此我理解并从中学习。我是一个新的Android Dev,希望尽可能多地学习,而不仅仅是修复我的代码。
所以,我目前的代码是......
XML
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ListView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
我不知道该怎么做我的主要活动。我到目前为止......
File storageDir = new File("/mnt/extSdCard/");
ArrayList<String> listItems=new ArrayList<String>();
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
walkdir(storageDir);
}
public void walkdir(File directory) {
TextView songList=(TextView)findViewById(R.id.textView);
String fileType = ".mp3";
File[] listFile = directory.listFiles();
if (listFile != null) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
walkdir(listFile[i]);
} else {
if (listFile[i].getName().endsWith(fileType)){
//I need to add the items to the ListView right here.
//listFile[i].toString() is the code to get the text, aka what i want to add
}
}
}
} }
答案 0 :(得分:1)
首先,在您的活动中,您应该扩展ListActivity而不是Activity。这将允许您访问名为setListAdapter
的方法(还有其他方法,但这可能是最简单的方法)。
setListAdapter
方法以适配器作为参数,因此我们现在需要创建一个可以传递它的适配器。
为此,请写下以下内容:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
listFile);
我会稍微打破一下:
this
)是我们传递上下文的地方。 一旦你完成了,我们只需要将适配器传递给我们的setListAdapter方法,就像这样
setListAdapter(adapter);
但在运行代码之前,我们需要在XML文件中添加一行。当你扩展ListActivity时,Android会寻找一个id为android.R.id.list的列表,所以我们需要像这样设置id:
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ListView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
答案 1 :(得分:0)
在获取mp3文件名后初始化列表适配器。
adapter = new ArrayAdapter(yourContext,android.R.layout.simple_list_item_1,yourFileNameList);
查看您的代码,您正在尝试将mp3文件转换为字符串并在listview中显示。你可以只显示文件名。
答案 2 :(得分:0)
您需要为自己构建的自定义列表视图设置适配器。 转到youtube并按Slidenerd搜索视频。他有Android的所有基础教程。 listview教程从#77开始。