我正在构建一个应用程序项目(我的第二个项目),可以说,它在等待带有 webview 的第二个 viewflipper 布局以加载网页时显示一个初始加载屏幕。加载时的 html 网页调用我的 android java 中的一个函数,vf.setDisplayedChild(TWO);
但它没有!我已经用烤面包而不是上述功能测试了这个?!这显示得很好。但是,如果我将其设置回displaychild,我的加载屏幕会崩溃并返回到我的main.xml 活动,然后使用viewflipper 重新启动活动并在崩溃和重新加载之间循环!
我怀疑这与我在 oncreate 函数中的 vf 控件和vf.displaychild
公共javascriptinterface
类中的调用有关??!!!但没有知识做更多。
我研究了某种布尔变化监听器,但不认为这是值得做的。
我的代码:
package com.......;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Toast;
import android.widget.ViewFlipper;
public class Webview extends Activity {
ViewFlipper vf;
private final int ONE = 0;
private final int TWO = 1;
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.vf);
vf=(ViewFlipper)findViewById(R.id.flipper);
vf.addView(View.inflate(this, R.layout.load, null), ONE);
vf.addView(View.inflate(this, R.layout.webview, null), TWO);
vf.setDisplayedChild(ONE);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setSupportZoom(false);
webView.addJavascriptInterface(new JSI(this), "android");
webView.loadUrl("my wamp dir");
//failsafe if not shown
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Sorry There was a problem!\nPlease check your Data/WI-FI connection.", Toast.LENGTH_SHORT).show();
finish();
}
}, 30000);
}
public class JSI
{
Context mContext;
/** Instantiate the interface and set the context */
JSI(Context c) {
mContext = c;
}
public void loaded()
{
vf.setDisplayedChild(TWO);
//Toast.makeText(mContext, "Showing!", Toast.LENGTH_SHORT).show();
}
}
}
当然,该函数在 jquery/script ready 函数中调用为:
android.loaded();
对答案的任何帮助表示赞赏!
编辑-------------------------- 已经找到了调试器并且得到了一个异常:只有一个线程可以访问它的设置视图!