Java 如何在静态方法中放置AlertDialog

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

如何在静态方法中显示AlertDialog,我试图设置一个条件,在该条件下,我检查SD卡中的文件夹,如果存在,则列出项目,否则我希望显示AlertDialog-消息“找不到具有Church名称的文件夹”

  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");
    }

    ....
}