1

3 つの Web ビューを持つプログラムがあります。各 Web ビューは JavaScript 対応で、動的に生成されたコンテンツ (リスト、アイコン、回転するアニメーションなど) があります。すべてがうまくてダンディです。

ここで、コピー アンド ペースト機能を追加して、ユーザーが他のアクティビティの値をクリップボードに貼り付けてから、それらを自分のアクティビティにコピーできるようにします。オプションメニューを使用してこれを行いたいと思います-「コピー」と「貼り付け」オプションが表示されます。現在の問題は、メニューボタンを押すと、オプションメニューを作成するためにどの方法を使用しても (つまり、onCreateOptionsMenu()、または onKeyDown() 中間ステップを使用して webview の消費を停止しても)、webview の HTML コンテンツが消えることです。イベント) と、.add を使用するか、XML でメニューを定義するか。

なぜこれが起こるのか誰にも分かりますか?Menu によって何らかの onPause が呼び出され、html がアンロードされる可能性がありますか? 以下は、メニューの作成/ウェブビューの読み込みなどのコードです...

public boolean onCreateOptionsMenu(Menu menu) {

   // menu.add(0, 0, 0, "test");
    menu.add("HELP");
    return true;
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_MENU) {
        // do your menu stuff here
       openOptionsMenu();

       return true;

    }
        else
        return super.onKeyDown(keyCode, event);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    // starting values for each spinner
    cur1Sel="Distance";
    cur2Sel="Inch";
    cur3Sel="Milimeter";
    // starting inp and outp vals
    inputValue = "";
    outputValue="";
    // init my constats from above...
    POINT = 98;
    CLEAR = 99;

    face = Typeface.createFromAsset(getAssets(),"helv_bold.ttf");
    format= new DecimalFormat("#.##");
    // nab them application resrouces you banger you.
    res = getResources();
    // build ouor arrays for display purposes
    measure_array = res.getStringArray(R.array.measure_array);
    input_array = res.getStringArray(R.array.distance_array);
    output_array = res.getStringArray(R.array.dist_inches_array);
    // init measure abbreviation arrays, otherwise we get null pointers first round....
    measure_abbrevs = new String[1];
    measure_abbrevs[0] = "none";

    // build abbreviation resrouces
    input_abbrevs = res.getStringArray(R.array.dist_abbrev_array);
    output_abbrevs = res.getStringArray(R.array.dist_inches_abbrev_array);
    // Webviews For Each Spinner
    measure_spinner = (WebView) this.findViewById(R.id.measure_view);

    input_spinner = (WebView) this.findViewById(R.id.input_view);
    output_spinner = (WebView) this.findViewById(R.id.output_view);

    // this lets everyone know where we start....
    curMeasure="Distance";
    // Measurement Spinner
    measure_spinner.getSettings().setJavaScriptEnabled(true);
    measure_spinner.addJavascriptInterface(new AndroidSpinnerBridge(), "android");
    measure_spinner.setVerticalScrollBarEnabled(false);

   // measure_spinner.getSettings().setUseWideViewPort(false); 
    //input Spinner
    input_spinner.getSettings().setJavaScriptEnabled(true);
    input_spinner.addJavascriptInterface(new AndroidSpinnerBridge(), "android");
    input_spinner.setVerticalScrollBarEnabled(false);

    //input_spinner.loadUrl("javascript:SpinningWheel.setId({2});");
    //output Spinner
    output_spinner.getSettings().setJavaScriptEnabled(true);
    output_spinner.addJavascriptInterface(new AndroidSpinnerBridge(), "android");
    output_spinner.setVerticalScrollBarEnabled(false);


    // buttons!  weeee! Buttons!!

    // IMPORTANT.. WAIT AWHILE FOR THE WEBVIEW TO PREPARE< OTHERWISE RENDERING MIGHT FAIL.  Then load.

    input_spinner.loadUrl("file:///android_asset/index_sp2.html");
    measure_spinner.loadUrl("file:///android_asset/index_sp1.html");
    output_spinner.loadUrl("file:///android_asset/index_sp3.html");
    measure_spinner.loadUrl("javascript:SpinningWheel.fixTheFuckingError();");



};  
4

0 に答える 0