Android Webview检查元素是否存在

时间:2014-09-09 14:16:59

标签: android

我正在根据HTML开发学校餐饮​​列表应用程序。该列表包含带有id的tbodys,我的应用程序检查它的当天,并仅显示该元素。我的代码在这里:

//Get day dd.MM (ex. 01.01)
day = new SimpleDateFormat("dd.MM").format(new Date());

if(webpage..getelementbyid..day.exists..) // Check if element (ex. 01.01) exists.
{
    //There is element with id "01.01"
    list.loadUrl("javascript:document.body.innerHTML=document.getElementById('" + day + "').innerHTML");
} else {
    //There is no element with id "01.01"
    list.loadUrl(noMealToday);
}

列表(HTML)

<tbody id="01.01">
<tr>
...
</tr>
</tbody>

1 个答案:

答案 0 :(得分:0)

我知道这有点老了。但是,为此我想到的解决方案是使用评估Java脚本,并使其返回元素的innerHTML。如果innerHTML为null或未定义,则说明它不存在。

            mWebview.evaluateJavascript(
                "(function() { var element = document.getElementById('loginStuff'); return element.innerHTML; })();",
                new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String html) {

                        RelativeLayout useVoiceOverlay = (RelativeLayout) findViewById(R.id.useVoiceOverlay);

                        if( html.equals("null") || html.equals("undefined")){
                            useVoiceOverlay.setVisibility(View.GONE );
                        }
                        else{
                            useVoiceOverlay.setVisibility(View.VISIBLE);
                        }
                    }
                });