HTML复选框的Andr​​oid的WebView [英] Html Checkbox in android webview

查看:156
本文介绍了HTML复选框的Andr​​oid的WebView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道: -

在我的项目,我使用的HTML内容和android的web视图显示它们。和我使用的Eclipse IDE。这是微小的code。

 <表格名称= \\FRM \\>中+
                                                <输入类型= \\复选框\\NAME = \\第一\\价值= \\某某\\>&XYZ LT; BR>中+
                                                <输入类型= \\复选框\\NAME = \\第一\\价值= \\ABC \\> ABC< BR>中+
                                               < /形式为GT;

我的问题是我如何能得到复选框的状态。其选中或取消选中。

或如何能赶上状态我的Java code。

UPD: -

 公共字符串的html =<表格名称= \\FRM \\>中+
                                                    <输入类型= \\复选框\\NAME = \\第一\\价值= \\某某\\>为< BR>中+
                                                    <输入类型= \\复选框\\NAME = \\第二个\\价值= \\ZYX \\>为< BR>中+
                                                    <输入类型= \\按钮\\的onclick = \\callDoSomething()\\>< BR>中+
                                                    < /形式为GT; +
                                                    <脚本类型= \\文/ JavaScript的\\>中+
                                                    功能callDoSomething(){+
                                                    VAR theName = document.frm.First.value;+
                                                    警报('theName')+
                                                    }+
                                                    &所述; /脚本>中;


解决方案

首先,无论你的复选框被命名为第一次,你应该命名第二个二。如果你想通过值来搜索复选框 - 只需添加一个简单的JS的for循环

假设你想从你的Andr​​oid code的结果(而不是JS事件就像点击一个按钮),这里是你如何获取Java布尔值你的名字复选框:

  //假设你的活动MyActivity,目标复选框名称
//在targetCheckboxName var和web视图具有文档
//已装
对象JSI =新的对象(){
    @JavascriptInterface
    公共字符串reportCheckboxState(字符串名称,布尔器isChecked){
        新AlertDialog.Builder(MyActivity.this).setMessage(名称+就是+
                。器isChecked).create()显示();
    }
};
webView.addJavascriptInterface(JSI,注入);
webView.loadUrl(
    的javascript:injection.reportCheckboxState(FRM。+ targetCheckboxName +
    .name和FRM。 + targetCheckboxName +.checked);
);

但实际上,这是一个非常简单的一招。通过意见的问题来看,你应该对JavaScript和<读了href=\"http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface%28java.lang.Object,%20java.lang.String%29\"相对=nofollow> WebView.addJavaScriptInterface()

I want to know:-

In my project i am using html content and displaying them in android webview. and i am using eclipse ide. this is tiny code.

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

my question is how can i get check box state .its checked or unchecked.

or how can i catch the state in my java code.

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>";

解决方案

First, both of your checkboxes are named "First", you should probably name second one "Second". If you want to search checkboxes by value - just add a simple js for loop.

Assuming you want to get the results from your Android code (as opposed to JS event like clicking a button), here's how you get Java boolean value for you checkbox by name:

// 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);"
);

But really, it's a very simple trick. Judging by comments to the question, you should probably read up on JavaScript and WebView.addJavaScriptInterface()

这篇关于HTML复选框的Andr​​oid的WebView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆