【发布时间】:2010-10-18 06:30:07
【问题描述】:
我现在被困在从我的资产文件夹加载 html 中。我在 assets 文件夹下有几个 html 页面,并且必须在 listview item onclick 上加载这些页面。每个列表视图项都拥有自己的 html 页面。有人知道我如何获得 onclick 事件以及如何显示特定的 html 页面吗?
谢谢
【问题讨论】:
标签: html android listview webview
我现在被困在从我的资产文件夹加载 html 中。我在 assets 文件夹下有几个 html 页面,并且必须在 listview item onclick 上加载这些页面。每个列表视图项都拥有自己的 html 页面。有人知道我如何获得 onclick 事件以及如何显示特定的 html 页面吗?
谢谢
【问题讨论】:
标签: html android listview webview
public class WebViewWithListActivity extends Activity {
private String lv_arr[] = { "Android", "iPhone", "BlackBerry"};
ListView lv1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv1 = (ListView) findViewById(R.id.listView1);
lv1.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, lv_arr));
lv1.setTextFilterEnabled(true);
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id)
{
AlertDialog.Builder adb = new AlertDialog.Builder(WebViewWithListActivity.this);
adb.setTitle("Selected item");
adb.setMessage("Selected Item is = "
+ lv1.getItemAtPosition(position));
adb.setPositiveButton("Ok", null);
Log.i("Selected item is ",(String) lv1.getItemAtPosition(position)+"" );
adb.show();
//TextView tvUrl = (TextView) view.findViewById(R.id.item2);
TextView tvUrl=(TextView) findViewById(R.id.item2);
if(lv1.getItemAtPosition(position).equals("Android"))
{
GlobalVariable.SetURL("http://www.google.co.in/");
Log.i("Global vari : ",GlobalVariable.GetURL());
Intent i = new Intent(WebViewWithListActivity.this,WebViewDemo.class);
//i.putExtra("http://www.google.co.in/", tvUrl.getText());
startActivity(i);
}
}
});
}
}
这是WebViewDemo。我只是扩展了Activity:
public class WebViewDemo extends Activity{
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_webview);
//String url =getIntent().getStringExtra("url");//get url that pass from the other screen
//Log.i("url ", url+"");
Log.i("Global vari : ",GlobalVariable.GetURL());
webView = (WebView)findViewById(R.id.wvDisplay);
WebSettings webSetting= webView.getSettings(); //create new settings for webView
webSetting.setJavaScriptEnabled(true); // enabled javascript
webView.setWebViewClient(new WebViewClient()); //set up webviewclient, this set not to open the default browser when link click
//Log.i("url ", url+"");
webView.loadUrl(GlobalVariable.GetURL());//load the web page
}
}
public class GlobalVariable extends Application{
private static String url;
public static String GetURL()
{
return url;
}
public static void SetURL(String URL) {
url = URL;
}
}
【讨论】:
setOnItemClickListener 方法来获取列表项的点击事件。loadUrl 方法来显示您的html 页面。见WebView tutorial。【讨论】:
老兄......放弃......它不会工作 - 当你在 listview 中有一个 webview 时,没有办法让这个监听器工作
【讨论】:
您可以使用自定义 webViewClient 并捕获 html 中的链接,然后您可以根据点击次数做任何您想做的事情。
【讨论】: