public class CollectUrlActivity extends Activity {
    /** Called when the activity is first created. */
 private ListView listView;
 WebView webView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = new ListView(this);
        webView=new WebView(this);
        listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()));
        listView.setOnItemClickListener(new OnItemClickListener() {  
            @Override  
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
                setTitle("点击第"+arg2+"个项目");
                webView.getSettings().setJavaScriptEnabled(true);
                webView.loadUrl("http://sina.com");
                setContentView(webView);
            }  
        }); 
        setContentView(listView);
        
    }
    
    public boolean onKeyDown(int keyCode,KeyEvent event)
    {
        if(webView.canGoBack() && keyCode == KeyEvent.KEYCODE_BACK)
        {
         webView.goBack();  
         return true;
        }
        setContentView(listView);
        return super.onKeyDown(keyCode, event); 
    }    private List<String> getData(){
        
        List<String> data = new ArrayList<String>();
        data.add("测试数据1");
        data.add("测试数据2");
        data.add("测试数据3");
        data.add("测试数据4");
         
        return data;
    }
}
就是要求点击listview的item 然后链接倒一个网址
在返回的时候再显示listview

解决方案 »

  1.   

    setContentView(listView);
    切来切去干吗?直接可见不可见就行了啊
      

  2.   


    额 就是不会阿 我做windows开发的,搞C++的
    同学让我帮他写个小的软件,大侠们还能帮忙看看如何实现我的功能
      

  3.   

    你是要实现什么样的功能,显示网页的时候点击返回回到list页面,在list页面点击返回就退出程序吗。
      

  4.   


    webView.canGoBack(),这个判断有问题,你可以这么做:
    加个全局变量boolean webView_show = false;   //true 为webwiew显示
    setTitle("点击第"+arg2+"个项目");
                    webView.getSettings().setJavaScriptEnabled(true);
                    webView.loadUrl("http://sina.com");
                    setContentView(webView);
                    webView_show = true;   //显示webwiew的同时,把webView_show = true;返回事件这样写
    public boolean onKeyDown(int keyCode,KeyEvent event)
        {
            if (webView_show && keyCode == KeyEvent.KEYCODE_BACK) {
    //点击返回,且webView显示时,触发
             System.out.println("gogo");
             setContentView(listView);
             webView_show = false;
             return false;
            }
    //其他关闭程序
            return super.onKeyDown(keyCode, event); 
        }
      

  5.   

    好的 谢谢哈 我明天看看
    再提个问题:我进入网页后,我点击了网页中的链接,又进入了另个页面
    这个时候我按返回应该是返回上个页面,再按返回才是回到listView,这个时候我该如何判断
      

  6.   

    webView这个控件我也没用过,if (webView_show && keyCode == KeyEvent.KEYCODE_BACK) {
      //点击返回,且webView显示时,触发
      System.out.println("gogo");
      setContentView(listView);
      webView_show = false;
      return false;
      }
    if (webView_show && keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
      //返回上个页面
      }
      

  7.   

    你这个为啥非要自己用webview去实现呢,webview比较占内存,再说webView.canGoBack()这个方法是用来判断你是否在网页里点击过二级链接,你这种功能比较适合另开一个Activity里放webview,顺便提醒下,你用webview得注意一些东西,比如是否支持js啊,比如你是否需要网页的内容点击时依然在webview上load或者用系统浏览器,个人比较建议你用系统浏览器,方便。
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
                    setTitle("点击第"+arg2+"个项目");
                     Uri uri= Uri.parse("http://sina.com"); 
             Intent i = new Intent(Intent.ACTION_VIEW, uri); 
            XXXActivity.this.startActivity(i);
                    也不用去setContentView            }  
            });