【发布时间】:2014-12-21 00:52:38
【问题描述】:
在我的应用程序中,我希望有一个微调器,该微调器由我保存到此应用程序内部存储的不同文件填充。接下来,
- 我希望能够从微调器中打开它们。
- 我已经创建了微调器,并且能够将文件写入和读取到内部存储。
我怎样才能做到这一点?
【问题讨论】:
-
你能展示一下你尝试过的东西吗..
标签: android local-storage spinner
在我的应用程序中,我希望有一个微调器,该微调器由我保存到此应用程序内部存储的不同文件填充。接下来,
我怎样才能做到这一点?
【问题讨论】:
标签: android local-storage spinner
列出目录中的文件并从列表中设置微调器:
String path = getApplicationContext().getFilesDir().toString();
//if you want to list from a specific directory you created
//String path = getApplicationContext().getFilesDir().toString()+"/your_Directory";
File directory = new File(path);
File fileList[] = directory.listFiles();
String[] list = new String[fileList.size()];
String[] spinnerList = new String[fileList.size()];
for (int i=0; i < fileList.length; i++)
{
list[i] = fileList[i].getAbsolutePath().toString();
spinnerList[i] = list[i].substring(list[i].lastIndexOf("/")+1);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, spinnerList);
spinner.setAdapter(adapter);
【讨论】:
我可以使用下面的代码来完成,但现在我想将文件打开到 TextView 中。 现在我只能在 TextView 上显示文件的标题,但我想显示文件的内容。 感谢您的帮助!
public class ListasGravadas extends Activity {
private TextView lista;
private ListView listasGravadas;
private Spinner spinner;
String[] SavedFiles;
private Menu menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listas_gravadas);
lista = (TextView) findViewById(R.id.lista);
listasGravadas = (ListView) findViewById(R.id.listView);
spinner = (Spinner) findViewById(R.id.spinner);
ShowSavedFiles();
addListenerToSpinner();
FileInputStream fis;
String content = "";
try {
String file = "teste";
fis = openFileInput(file);
byte[] input = new byte[fis.available()];
while (fis.read(input) != -1) {
}
content += new String(input);
lista.setText(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ShowSavedFiles();
}
private void ShowSavedFiles() {
SavedFiles = getApplicationContext().fileList();
ArrayAdapter<String> adapter
= new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
SavedFiles);
spinner.setAdapter(adapter);
}
public void addListenerToSpinner() {
spinner = (Spinner) findViewById(R.id.spinner);
lista = (TextView) findViewById(R.id.lista);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3) {
String result = parent.getItemAtPosition(pos).toString();
lista.setText(result);
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
}
【讨论】:
此代码有效
void ShowSavedFiles() {
SavedFiles = getApplicationContext().fileList();
ArrayAdapter<String> adapter
= new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
SavedFiles);
listSavedFiles.setAdapter(adapter);
adapter.notifyDataSetChanged();
【讨论】: