我有viewPager组件,其中包含带有来自远程服务器的HTML内容的多个Web视图。
它是简单的HTML代码,无法更改服务器端的HTM1输出。
我想问一下,如何在Android中使用给定ID捕获指定元素上的click(tap)事件?
ViewPager
private void initViewPager() {
pager = (ViewPager) findViewById(R.id.my_pager);
adapter = new FragmentStatePagerAdapter(
getSupportFragmentManager()
) {
@Override
public int getCount() {
// This makes sure getItem doesn't use a position
// that is out of bounds of our array of URLs
Logger.d(String.valueOf(mWelcomeController.loadedPagesToDisplay.size()));
return mWelcomeController.loadedPagesToDisplay.size();
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
Logger.d(mWelcomeController.loadedPagesToDisplay.toString());
return BrowserFragment.newInstance(
mWelcomeController.loadedPagesToDisplay.get(position)
);
}
};
//Let the pager know which adapter it is supposed to use
pager.setAdapter(adapter);
}
因为我无法在服务器端修改HTML输出(也许将某些属性注入设备上的DOM?),所以我不能使用类似这样的东西:
通过Android WebView中的javascript检测HTML按钮的单击。
我只想要这样的东西:
为此,您需要解析html,而Jsoup是Java(也是Android)的一个很好的html解析器。
您可以执行以下操作:
// Connect to the web site
Document doc = Jsoup.connect(url).get();
Element button = doc.select("#buttonid");
button.html("new stuff here");
//parse back and put in webview
String finaloutput = doc.html();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句