我正在尝试获取一些我已保存在应用中的字符串并打印出来。出于某种原因,我的应用程序崩溃了。你可以帮帮我吗? :)
ListView list;
String[] listC, filenames;
String entry;
int files, i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pastbets);
list = (ListView) findViewById(R.id.list);
listC = new String[filenames.length/2];
Prepare();
ArrayAdapter<String> filenameAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listC);
list.setAdapter(filenameAdapter);
}
private void Prepare() {
filenames = getApplicationContext().fileList();
files = filenames.length/2;
for(i=0; i<files; i++) {
entry = openFile(filenames[2*i])+" - "+openFile(filenames[2*i+1]);
listC[i] = entry;
}
}
我认为'openFile'功能没问题,但是......
private String openFile(String selectFile) {
String file = "";
FileInputStream fis;
try {
fis = openFileInput(selectFile);
byte[] input = new byte[fis.available()];
while(fis.read(input) != -1){
file += new String(input);
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
答案 0 :(得分:0)
应用程序崩溃是因为filenames
Array在使用之前未初始化,因此在初始化Prepare()
数组之前调用listC
方法:
list = (ListView) findViewById(R.id.list);
Prepare();
listC = new String[filenames.length/2];