私はアンドロイドマーケットで、ユーザが時々間違ったエラーを報告するアプリを持っています。ArrayIndexOutofBounds(強制終了)。私はこのエラーを自分で経験したことがないので、問題を理解することは難しいです。私はもっと才能のあるプログラマが見てくれることを期待していました。このファイルダイアログを表示する人がいるときに起こります。Android arrayindexoutofboundsエラー
public void fileDialog() {
// TODO Auto-generated method stub
d = new Dialog(this);
d.setTitle("Choose the song file");
if (canWriteToFlash()) {
ScrollView sview = new ScrollView(this);
LinearLayout holder = new LinearLayout(this);
holder.setOrientation(1);
String path = Environment.getExternalStorageDirectory().getPath()
+ File.separator + "Music" + File.separator;
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
int count = 0;
// count files in directory
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
count++;
}
}
if (count == 0) {
TextView empty1 = new TextView(this);
empty1.setText("The folder sdcard/Music, is empty. You must add song files in order to attach music to lyrics.");
empty1.setTextSize(18);
empty1.setPadding(8, 0, 8, 8);
holder.addView(empty1);
}
// turn files into string array
String[] sfiles = new String[count];
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
sfiles[i] = listOfFiles[i].getName();
}
}
// Sort Array case insenstive
Arrays.sort(sfiles, String.CASE_INSENSITIVE_ORDER);
// create text
TextView[] t1 = new TextView[(count)];
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
t1[i] = new TextView(this);
t1[i].setText(sfiles[i]);
t1[i].setPadding(7, 8, 7, 8);
t1[i].setTextSize(18);
holder.addView(t1[i]);
}
}
// Create Click
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
final TextView thetext = t1[i];
thetext.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
songname = (String) thetext.getText();
songfile.setText(songname);
d.cancel();
}
});
}
}
sview.addView(holder);
d.setContentView(sview);
} else {
TextView usbt = new TextView(this);
usbt.setText("Cannot communicate with sdcard! Make sure that USB connected is not enabled. Or try unplugging your USB cord.");
usbt.setPadding(7, 8, 7, 8);
usbt.setTextSize(18);
d.setContentView(usbt);
}
d.show();
}
print(listOfFiles.length)、出力は何ですか? –