Android 从AlertDialog返回字符串
我正在从事android项目,我试图显示一个AlertDialog,其中包含一个Android 从AlertDialog返回字符串,android,android-alertdialog,Android,Android Alertdialog,我正在从事android项目,我试图显示一个AlertDialog,其中包含一个CharSequence数组,当单击时,它应该返回字符串 下面是我正在使用的代码 String fileName = ""; //Collect the files from the backup location String filePath = Environment.getExternalStorageDirectory().getPath() + "/BoardiesPass
CharSequence
数组,当单击时,它应该返回字符串
下面是我正在使用的代码
String fileName = "";
//Collect the files from the backup location
String filePath = Environment.getExternalStorageDirectory().getPath() + "/BoardiesPasswordManager";
File f = new File(filePath);
File[] files = f.listFiles();
final CharSequence[] fileNames = new CharSequence[files.length];
if (files.length > 0)
{
for (int i = 0; i < files.length; i++)
{
fileNames[i] = files[i].getName();
}
}
String selectedFile = "";
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Choose Backup File");
builder.setItems(fileNames, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
fileName = fileNames[item].toString();
}
});
AlertDialog alert = builder.create();
alert.show();
return fileName;
stringfilename=”“;
//从备份位置收集文件
字符串filePath=Environment.getExternalStorageDirectory().getPath()+“/BoardiesPasswordManager”;
文件f=新文件(文件路径);
File[]files=f.listFiles();
final CharSequence[]filename=新CharSequence[files.length];
如果(files.length>0)
{
对于(int i=0;i
如您所见,我试图将文件名设置为数组中的选定项,但Eclipse一直说String fileName
需要是final
类型,但显然,我无法将其设置为选定字符串的值。如何设置变量以便返回字符串
感谢您提供的帮助。这里的问题是对何时执行“返回文件名”的误解。显然,只有在用户做出选择后才能执行此代码。但是,它实际上会在之前执行。实际上,它将在调用alert.show()后立即执行 最好从函数的作用域中删除fileName,并在单击事件中添加函数调用,如:
public void onClick(DialogInterface dialog, int item){
String fileName = fileNames[item].toString();
doSomethingWithTheFile(fileName);
}
另外,您的原始函数将不再返回任何内容,它只会设置您的对话框