【问题标题】:How to do a WebView AND ListView in the same Activity onCreate()?如何在同一个 Activity onCreate() 中执行 WebView 和 ListView?
【发布时间】:2011-01-15 04:50:54
【问题描述】:
public class hello extends Activity, ListActivity {
    WebView main_webv;  
    ListView main_listv;
    public static final int REFRESHLIST_ID = Menu.FIRST;

    private Handler mHandler = new Handler();
    private static final String SPLASH = "http://";
    private static final String LIST_NAMES = "http://";

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.main);
        main_webv = (WebView) findViewById(R.id.mainwebview);
        main_webv.setWebViewClient(new HelloWebViewClient());
        main_webv.getSettings().setJavaScriptEnabled(true);
        main_webv.getSettings().setSupportZoom(false);
        main_webv.addJavascriptInterface(new HelloJavascriptInterface(),"hello");
        main_webv.setWebChromeClient(new HelloWebChromeClient());
        main_webv.loadUrl(SPLASH);  
        main_webv.setVisibility( 4 );

        setContentView(R.layout.main_list);         
        main_listv = (ListView) findViewById(R.id.mainlistview);    

    }

如您所见,我首先创建了一个 webview。然后,我希望它立即消失。然后,我希望 Listview 出现。但问题是,如果我不做ListActivity,我就不能做Listview...但是我不能做Activity...

【问题讨论】:

    标签: android listview android-activity webview


    【解决方案1】:

    您当然可以在没有ListActivity 的情况下使用ListView。您还可以使用 WebViewListActivity

    【讨论】:

    • 而Java不允许多重继承“所以公共类imhello扩展了Activity,ListActivity”不正确
    【解决方案2】:

    您可以查看我在您的另一个(可能相关)线程中发布的代码:here。 我将复制相同的代码: 这是我的布局 XML(weblister.xml):

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <ListView
        android:id="@+id/list_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
        <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
    
    </FrameLayout>
    

    现在,我创建了一个 Activity,它的视图层次结构中同时包含 ListView 和 WebView,但其中只有一个是可见的:

    public class WebAct extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.weblister);
    
                //setup listview
            ListView listView = (ListView) findViewById(R.id.list_view);
            listView.setAdapter(new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1,
                    new String[]{"One","Two"}){
    
            });
                // setup web view
            WebView webView = (WebView) findViewById(R.id.webview);
    
            webView.getSettings().setJavaScriptEnabled(true);
            webView.getSettings().setSupportZoom(false);
    
            webView.loadUrl("http://www.google.com");
    
                // set visibility    
            listView.setVisibility(View.INVISIBLE);
            webView.setVisibility(View.VISIBLE);
        }
    
    }
    

    【讨论】:

      【解决方案3】:

      //main.xml

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      >
      <RelativeLayout android:id="@+id/lister"
                   android:layout_width="match_parent"
                   android:layout_height="300dp"
                   android:layout_alignParentTop="true">
      <ListView
      android:id="@+id/list_view"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      />
      </RelativeLayout>
      
      <RelativeLayout android:id="@+id/webviewer"
               android:layout_width="match_parent"
               android:layout_height="300dp"
               android:layout_below="@+id/lister">    
      <WebView
      android:id="@+id/webview"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      />
      </RelativeLayout>
      

      //java文件

      package list.View;
      
      import android.app.Activity;
      import android.os.Bundle;
      import android.view.View;
      import android.webkit.WebView;
      import android.widget.ArrayAdapter;
      import android.widget.ListView;
      
      
      public class ListViewActivity extends Activity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
      
              //setup listview
          ListView listView = (ListView) findViewById(R.id.list_view);
          listView.setAdapter(new ArrayAdapter<String>(this,
                  android.R.layout.simple_list_item_1,
                  new String[]{"One","Two"}){
      
          });
              // setup web view
          WebView webView = (WebView) findViewById(R.id.webview);
      
          webView.getSettings().setJavaScriptEnabled(true);
          webView.getSettings().setSupportZoom(false);
      
          //webview.loadUrl("www.google.com");
      
          webView.loadDataWithBaseURL("file:///android_asset/", "<img src=\"banner5.png\" height=\"98%\" width=\"100%\"/>", "text/html", "utf-8", null);
      
      
      
      }
      

      }

      【讨论】:

        猜你喜欢
        • 2016-08-30
        • 1970-01-01
        • 2012-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多