Java 如何在静态方法中放置AlertDialog
如何在静态方法中显示AlertDialog,我试图设置一个条件,在该条件下,我检查SD卡中的文件夹,如果存在,则列出项目,否则我希望显示AlertDialog-消息“找不到具有Church名称的文件夹”Java 如何在静态方法中放置AlertDialog,java,android,static,android-alertdialog,Java,Android,Static,Android Alertdialog,如何在静态方法中显示AlertDialog,我试图设置一个条件,在该条件下,我检查SD卡中的文件夹,如果存在,则列出项目,否则我希望显示AlertDialog-消息“找不到具有Church名称的文件夹” public static List <String> fromSDCard() { List <String> listChurchWall = new ArrayList <String>(); // listi
public static List <String> fromSDCard()
{
List <String> listChurchWall = new ArrayList <String>();
// listing Wallpaper using church names
String string = "/mnt/sdcard/Church/Wallpaper/";
f = new File (string+name+"/");
if (f.exists())
{
files = f.listFiles ();
}else{
// here i want to put AlertDialog
}
return listChurchWall;
}
SDCard()中的公共静态列表
{
List listChurchWall=newArrayList();
//使用教堂名称列出壁纸
String=“/mnt/sdcard/Church/wallper/”;
f=新文件(字符串+名称+“/”);
如果(f.exists())
{
files=f.listFiles();
}否则{
//我想在这里放一个对话框
}
返回墙;
}
将应用程序上下文传递给静态方法
public static List <String> fromSDCard(Context context)
{
List <String> listChurchWall = new ArrayList <String>();
// listing Wallpaper using church names
String string = "/mnt/sdcard/Church/Wallpaper/";
f = new File (string+name+"/");
if (f.exists())
{
files = f.listFiles ();
}else{
// 1. Instantiate an AlertDialog.Builder with its constructor
AlertDialog.Builder builder = new AlertDialog.Builder(context);
// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage(R.string.dialog_message)
.setTitle(R.string.dialog_title);
// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.create();
// 4. Show the dialog
dialog.show()
}
return listChurchWall;
}
SD卡中的公共静态列表(上下文)
{
List listChurchWall=newArrayList();
//使用教堂名称列出壁纸
String=“/mnt/sdcard/Church/wallper/”;
f=新文件(字符串+名称+“/”);
如果(f.exists())
{
files=f.listFiles();
}否则{
//1.实例化AlertDialog.Builder及其构造函数
AlertDialog.Builder=新建AlertDialog.Builder(上下文);
//2.将各种setter方法链接在一起以设置对话框特征
builder.setMessage(R.string.dialog\u消息)
.setTitle(R.string.dialog_title);
//3.从create()获取AlertDialog
AlertDialog=builder.create();
//4.显示对话框
dialog.show()
}
返回墙;
}
如果您在活动中打电话
public MyActivity extends Activity
{
....
private void Method()
{
List<String> list = fromSdCard(this);
}
....
}
public MyActivity扩展活动
{
....
私有无效方法()
{
列表=来自SD卡(本);
}
....
}
SD卡的公共静态列表(上下文mContext){
List listChurchWall=新建ArrayList();
//使用教堂名称列出壁纸
String=“/mnt/sdcard/Church/wallper/”;
f=新文件(字符串+名称+“/”);
如果(f.exists()){
files=f.listFiles();
}否则{
AlertDialog.Builder=新建AlertDialog.Builder(mContext);
int imageResource=android.R.drawable.stat\u sys\u警告;
Drawable image=mContext.getResources().getDrawable(imageResource);
builder.setTitle(“title”).setMessage(“您的消息”).setIcon(图像).setCancelable(false).setNeutralButton(“确定”,新建对话框界面.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
}
});
AlertDialog alert=builder.create();
警报。可设置可取消(错误);
alert.show();
}
返回墙;
}
尝试以下方法--
public static List <String> fromSDCard(Activity a, String title, String message)
{
List <String> listChurchWall = new ArrayList <String>();
// listing Wallpaper using church names
String string = "/mnt/sdcard/Church/Wallpaper/";
f = new File (string+name+"/");
if (f.exists())
{
files = f.listFiles ();
}
else
{
AlertDialog.Builder dialog = new AlertDialog.Builder(a);
dialog.setTitle(title);
dialog.setMessage(message);
dialog.setNeutralButton("OK", null);
dialog.create().show();
}
return listChurchWall;
}
SD卡中的公共静态列表(活动a、字符串标题、字符串消息)
{
List listChurchWall=newArrayList();
//使用教堂名称列出壁纸
String=“/mnt/sdcard/Church/wallper/”;
f=新文件(字符串+名称+“/”);
如果(f.exists())
{
files=f.listFiles();
}
其他的
{
AlertDialog.Builder dialog=新建AlertDialog.Builder(a);
对话框。设置标题(标题);
设置消息(消息);
setNeutralButton(“确定”,空);
dialog.create().show();
}
返回墙;
}
那么在你们班上做--
public MyActivity extends Activity
{
....
private Method()
{
List<String> list = fromSdCard(this, "Your Title", "Your message");
}
....
}
public MyActivity扩展活动
{
....
私有方法()
{
List List=来自SD卡(这是“您的标题”、“您的信息”);
}
....
}
更新:
您会得到一个NullPointerException
,因为有些内容是不应该为null的。它发生在对数组排序时,因此可能有一个数组元素为null。看看如何为数组赋值
也许在它的顶部,看看是否有任何对象
objectO1
或objectO2
本身为空。现在更让人困惑的是,在这里使用什么:churchWallList=fromSDCard(?);我仍然在使用:churchWallList=fromSDCard();类型ListActivity中的方法fromSDCard(context)不适用于刚刚更新的参数()。如果你把你的类放在你的问题中,我会更新我的答案,使之更具体。谢谢,我勾选了你的答案作为有用的,也接受:)activity.java的第226行是什么?首先修复空指针异常:TimSort.java:169…第169行是什么?谢谢,这是我愚蠢错误的结果:(谢谢,我勾选了你的答案,认为有用。)NPE是我愚蠢错误的结果
public MyActivity extends Activity
{
....
private Method()
{
List<String> list = fromSdCard(this, "Your Title", "Your message");
}
....
}