簡體   English   中英

Android 4.1上的AlertDialog問題

[英]AlertDialog Issue On Android 4.1

使用警報對話框時出現一些錯誤。 我使用的是4.1軟糖SDK。 我想檢查用戶的互聯網連接,gps是否可用。

錯誤行:

myAlertDialog = alertDialog.create();

我的控制功能:

public void kontrol(){

            LocationManager locManager = (LocationManager) getSystemService(LOCATION_SERVICE);  

            if (locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){  

                if(isConn()){

                {   
                    startActivity(new Intent (MainActivity.this,GPSanasayfa.class));
                }
            }
                else{
                    AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);

                    alertDialog.setMessage("Uygulamayı kullanabilmek için internet bağlantınızın aktif olması gerekmektedir");
                    alertDialog.setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int which) {
                          System.exit(0);
                       }
                    });

                    myAlertDialog = alertDialog.create(); //I get error this line
                    myAlertDialog.show();
                }

        }

            else{
                    startActivity(new Intent (MainActivity.this,NormalAnasayfa.class)); 
            }

        }

錯誤日志:

09-12 09:06:28.685: E/AndroidRuntime(825): FATAL EXCEPTION: Thread-93
09-12 09:06:28.685: E/AndroidRuntime(825): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
09-12 09:06:28.685: E/AndroidRuntime(825):  at android.os.Handler.<init>(Handler.java:121)
09-12 09:06:28.685: E/AndroidRuntime(825):  at android.app.Dialog.<init>(Dialog.java:107)
09-12 09:06:28.685: E/AndroidRuntime(825):  at android.app.AlertDialog.<init>(AlertDialog.java:114)
09-12 09:06:28.685: E/AndroidRuntime(825):  at android.app.AlertDialog$Builder.create(AlertDialog.java:913)
09-12 09:06:28.685: E/AndroidRuntime(825):  at com.minor.cepcadisiv3.MainActivity.kontrol(MainActivity.java:55)
09-12 09:06:28.685: E/AndroidRuntime(825):  at com.minor.cepcadisiv3.MainActivity$2.run(MainActivity.java:78)
09-12 09:06:28.685: E/AndroidRuntime(825):  at java.lang.Thread.run(Thread.java:856)

我在onCreate中調用此函數:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        pdialog = ProgressDialog.show(MainActivity.this, "Kontrol Ediliyor...", "İnternet ve GPS erişiminiz kontrol ediliyor.",true);

        new Thread(new Runnable() {  
            public void run() { 
                try {
                    Thread.sleep(2000);
                    kontrol(); 
                    pdialog.dismiss();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                return;  
            }  
        }).start();  

}

嘗試這個..

AlertDialog myAlertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setMessage("Uygulamayı kullanabilmek için internet bağlantınızın aktif olması gerekmektedir");
alertDialog.setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        System.exit(0);
    }
});

myAlertDialog.show();

我解決了這樣的問題。

public Activity activity = MainActivity.this;

這是功能代碼

activity.runOnUiThread(new Runnable() {
                    public void run() {
                       AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setMessage("Uygulamayı kullanabilmek için internet bağlantınızın aktif olması gerekmektedir")
                       .setCancelable(false)
                       .setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                                System.exit(0);
                           }
                       });
                AlertDialog alert = builder.create();
                alert.show(); 
                    }
                });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM