【发布时间】:2015-03-24 07:00:46
【问题描述】:
我在 android 中有一个从 javascript 界面调用的警报对话框。 在警报对话框中,我有两个按钮,当您单击其中一个按钮时,我想启动其他包含列表的警报对话框。但是当我单击应用程序崩溃时。 这是我的java代码:
public void SaveDialog(final String SaveID) {
final SQLiteDatabase mydatabase1 = openOrCreateDatabase("CopyCollection", MODE_PRIVATE, null);
Cursor c = mydatabase1.rawQuery("SELECT * FROM Details WHERE ID="+SaveID+";", null);
if(c.moveToFirst()) {
do {
appName = c.getString(1);
txtClip = c.getString(2);
text_Date = c.getString(3);
} while (c.moveToNext());
}
AlertDialog.Builder myDialog = new AlertDialog.Builder(AndroidHTMLActivity.this);
myDialog.setTitle("ذخیره");
myDialog.setPositiveButton("ذخیره", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//======================================================
String names[] ={"A","B","C","D"};
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(AndroidHTMLActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.main, null);
alertDialog.setView(convertView);
alertDialog.setTitle("List");
ListView lv = (ListView) convertView.findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(AndroidHTMLActivity.this,android.R.layout.simple_list_item_1,names);
lv.setAdapter(adapter);
alertDialog.show();
}
});
myDialog.setNegativeButton("اشتراک گذاری", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareBody = txtClip;
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
});
myDialog.show();
}
这是 logcat:
03-24 02:22:58.146 5499-5499/com.exercise.AndroidHTML W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb0cf3b20)03-24 02:22:58.156 5499-5499/com.exercise.AndroidHTML E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.exercise.AndroidHTML, PID: 5499
java.lang.IllegalStateException: Calling View methods on another thread than the UI thread.
at com.android.webview.chromium.WebViewChromium.createThreadException(WebViewChromium.java:268)
at com.android.webview.chromium.WebViewChromium.checkThread(WebViewChromium.java:284)
at com.android.webview.chromium.WebViewChromium.setLayoutParams(WebViewChromium.java:1618)
at android.webkit.WebView.setLayoutParams(WebView.java:2099)
at android.view.ViewGroup.addViewInner(ViewGroup.java:3577)
at android.view.ViewGroup.addView(ViewGroup.java:3415)
at android.view.ViewGroup.addView(ViewGroup.java:3391)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at com.exercise.AndroidHTML.AndroidHTMLActivity$MyJavaScriptInterface.SaveDialog(AndroidHTMLActivity.java:198)
at com.android.org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
at com.android.org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:27)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)
【问题讨论】:
标签: java javascript android webview