![](/img/trans.png)
[英]android Position AlertDialog not working in 4.1 as on 2.3
[英]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.