0

私は知りたいです:-

私のプロジェクトでは、HTMLコンテンツを使用して、AndroidWebビューに表示しています。そして私はEclipseideを使用しています。これは小さなコードです。

"<form name =\"frm\">"+
                                                "<input type=\"checkbox\" name =\"First\" value =\"xyz\">xyz<br>"+
                                                "<input type=\"checkbox\" name =\"First\" value =\"abc\">abc<br>"+ 
                                               "</form>" 

私の質問は、チェックボックスの状態を取得する方法です。チェックボックスをオンまたはオフにします。

または、Javaコードで状態をキャッチするにはどうすればよいですか。

UPD:-

 public String html =  "<form name =\"frm\">"+
                                                    "<input type=\"checkbox\" name =\"First\" value =\"xyz\">as<br>"+
                                                    "<input type=\"checkbox\" name =\"Second\" value =\"zyx\">as<br>"+ 
                                                    "<input type =\"button\" onclick =\"callDoSomething()\"><br>"+
                                                    "</form>" +


                                                    "<script type=\"text/javascript\">"+
                                                    "function callDoSomething() {"+
                                                    " var theName = document.frm.First.value;"+
                                                    "alert('theName ')"+
                                                    "}"+
                                                    "</script>";
4

1 に答える 1

0

まず、両方のチェックボックスに「First」という名前が付けられています。おそらく、2 番目のチェックボックスには「Second」という名前を付ける必要があります。チェックボックスを値で検索する場合は、単純な js for ループを追加するだけです。

(ボタンをクリックするような JS イベントではなく) Android コードから結果を取得したい場合、チェックボックスの Java ブール値を名前で取得する方法は次のとおりです。

// assuming your activity is MyActivity, target checkbox name
// is in the targetCheckboxName var and webView has the document
// loaded already
Object jsi = new Object() {
    @JavascriptInterface
    public String reportCheckboxState(String name, boolean isChecked) {
        new AlertDialog.Builder(MyActivity.this).setMessage(name + " is " +
                isChecked).create().show();
    }
};
webView.addJavascriptInterface(jsi, "injection");
webView.loadUrl(
    "javascript:injection.reportCheckboxState(frm." + targetCheckboxName +
    ".name, frm." + targetCheckboxName + ".checked);"
);

しかし、実際には、それは非常に単純なトリックです。質問へのコメントから判断すると、おそらく JavaScript とWebView.addJavaScriptInterface()を読む必要があります。

于 2013-02-25T06:16:44.567 に答える