0
私はsdカードのパスを取得し、ラジオボタンと共に警告ダイアログで表示している警告ダイアログに取り組んでいます。検索結果のサイズがゼロのときにメッセージを表示する必要があります。setSingleChoiceItemsのサイズが0のとき、警告ダイアログにメッセージを表示
これは私がパスを表示することができる午前ここで私は、バックグラウンド
public ArrayList<File> getfile(File dir) {
File listFile[] = dir.listFiles();
File sdPathFile = Environment.getExternalStorageDirectory();
if (listFile != null && listFile.length > 0) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].getName().endsWith(".csv")) {
if (listFile[i].getName().equals(Constants.CREDENTIALS)) {
fileList.add(listFile[i]);
csvFiles = new CharSequence[]{sdPathFile.getAbsolutePath() + "/" + listFile[i].getName()};
File yourFile = new File(dir, listFile[i].getName());
try {
readFileData(yourFile.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} else {
LoginActivity.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(LoginActivity.this, "File not found", Toast.LENGTH_SHORT).show();
}
});
}
}
}
}
return fileList;
}
//Find the root of SD CARD and check for CSV
private class BackgroundTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog dialog;
public BackgroundTask(LoginActivity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute() {
dialog.setMessage("Looking for (credentials.csv) files...");
dialog.setCancelable(false);
dialog.show();
}
@Override
protected void onPostExecute(Void result) {
if (dialog.isShowing()) {
dialog.dismiss();
dialog();
}
}
@Override
protected Void doInBackground(Void... params) {
try {
root = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath());
getfile(root);
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
からファイルを取得していますSDカードと警告ダイアログに表示
CharSequence[] csvFiles = {};
public void dialog() {
final AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
alt_bld.setTitle(R.string.credentials);
alt_bld.setCancelable(false);
alt_bld.setSingleChoiceItems(csvFiles, -1, new DialogInterface
.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
regionsDialog();
dialog.dismiss();
}
});
alt_bld.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
finish();
}
});
AlertDialog alert = alt_bld.create();
alert.show();
}
からのパスを取得するために使用している私のコードですサイズがゼロ.Hereスクリーンショット
であるときに警告ダイアログにするときには、表示することができませんfound.Butファイルが
私はLogをcsvFiles.toStringに配置すると、[Ljava.lang.CharSequence; @ 7b630ef – winchester100
私はそれが空ではないと思います – winchester100
空のCharSequenceとして、正しく初期化されていますか? 次に、ファイルを解析できない場合、csvFilesは空のままなので、isEmpty()チェックが機能するはずです。 – dalla92