我构建了我的 custum android 应用程序。我需要使用 textView click 关闭 dilog 但我遇到了一些问题:我从 pythonanywhere 中托管的 python web 应用程序发送一个值到我的 android 活动然后在 android 对话框旁边但是当我点击txtclosee我有这个错误:
@SuppressLint({"NewApi", "SetJavaScriptEnabled"})
public class WebviewPREDICTActivity extends Activity {
Dialog myDialog;
WebView mWebViewDemo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_gallery);
myDialog = new Dialog(this);
mWebViewDemo = (WebView) findViewById(R.id.wwebvieww);
ButtonClickJavascriptInterface myJavaScriptInterface = new ButtonClickJavascriptInterface(WebviewPREDICTActivity.this);
mWebViewDemo.addJavascriptInterface(myJavaScriptInterface, "MyFunction");
mWebViewDemo.getSettings().setJavaScriptEnabled(true);
mWebViewDemo.loadUrl("http://brahmiamine.pythonanywhere.com/predict");
}
public class ButtonClickJavascriptInterface {
Context mContext;
ButtonClickJavascriptInterface(Context c) {
mContext = c;
}
//
@JavascriptInterface
public void onButtonClick(String TextInsideLi) {
TextView txt5,txtclosee;
//Button btnFollow;
myDialog.setContentView(R.layout.show_profil);
txt5=(TextView) myDialog.findViewById(R.id.message);
txtclosee=(TextView) myDialog.findViewById(R.id.txtclosee);
// Toast.makeText(mContext, TextInsideLi, Toast.LENGTH_SHORT).show();
// Log.i("myTag", TextInsideLi);
//System.out.printf(String.valueOf(TextInsideLi));
txt5.setText(TextInsideLi);
txtclosee.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myDialog.dismiss();
}
});
myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
myDialog.show();
}
}
}
我从 pythonanywhere 中托管的 python web 应用程序发送了一个值,其中包含 javascript 到我的 android 活动,然后在 android 对话框旁边,但是当我单击时txtclosee出现此错误:
2019-04-18 17:34:35.229 18526-18526/com.androiddeft.navigationdrawer E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.androiddeft.navigationdrawer, PID: 18526
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:8525)
at android.view.ViewRootImpl.doDie(ViewRootImpl.java:7332)
at android.view.ViewRootImpl.die(ViewRootImpl.java:7317)
at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:497)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:435)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:131)
at android.app.Dialog.dismissDialog(Dialog.java:462)
at android.app.Dialog.-android_app_Dialog-mthref-0(Dialog.java:156)
at android.app.-$Lambda$c44uHH2WE4sJvw5tZZB6gRzEaHI$1.$m$0(Unknown Source:4)
at android.app.-$Lambda$c44uHH2WE4sJvw5tZZB6gRzEaHI$1.run(Unknown Source:0)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)