我目前正在开发一个应用程序来记录声音并将它们保存为 *.mp3 文件。用户录制完声音后,会要求他重命名。用户完成重命名后,该文件将作为whateverTheUserTypedHere.mp3 保存到手机上的某个位置。
我目前在应用程序中实现的内容:
一旦用户设置了文件名,文件名就会被带到第二个活动中(称为“文件名”的变量)。这是制作列表视图的代码:
//global variables
ListView listView;
ArrayAdapter<String> listAdapter;
ArrayList<String> fileNames = new ArrayList<String>();
//this is inside onCreate
listView = (ListView) findViewById (R.id.mainListView);
listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow, fileNames);
//this is inside the method that is called everytime file is recorded
public void setFileName(final Editable filename) {
Log.d("2", "Set filename from first activity " + filename);
fileNames.add(filename.toString());
listView.setAdapter(listAdapter);
所以这一切都按现在应该的方式工作。每次记录和重命名文件时,它都会在第二个活动中立即添加到 listView。但是这段代码有一个很大的缺陷——listview的状态没有保存,所以每次我关闭应用程序并重新打开它,记录的文件仍然存在于手机的存储中,但listview无处可寻。所以我需要做的是实现一些东西,每次更改时都会保存listview的状态。
我想我能做的:
我在想一个更简单的方法会是别的。而不是在记录时向 listView 添加元素然后保存 listview 的状态,我基本上可以在每次打开活动时构建一个新的 listView。我可以实现一种读取手机上特定目录并且只读取 *.mp3 文件的方法。这样每次打开 listview 活动时,listView 都会根据特定目录中的文件自动“生成”。
我要的是什么:
我是 Android 编程新手,我只做了 2-3 个月。如果人们能给我一些关于我应该做什么的指示,我将不胜感激。我应该保留当前实现的方法,即在记录文件后立即添加 listView 行吗?如果是这样,我将如何保存它的状态/我将如何保存它添加的行?或者实现一个从某个目录读取文件然后在每次打开活动时生成一个列表视图的方法会更容易吗?如果是这样,我真的很感激一些关于如何做到这一点的指示,因为我以前从未做过这样的事情。
谢谢!