2010-02-10 50 views
3
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出現。但問題是,我不能做Listview如果我不做ListActivity ...但我不能做活動...如何在同一Activity onCreate()中做一個WebView和ListView?

回答

0

你可以看看我在其他(可能相關的)線程中發佈的代碼: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> 

現在,我創建這將有兩個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); 
    } 

} 
2

你可以肯定地做一個ListView沒有ListActivity。您也可以使用WebViewListActivity

+5

而Java犯規允許多重繼承 「讓公共類imhello擴展活動,ListActivity」 是不正確 – ccheneson 2010-02-10 13:35:14

0

//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); 



} 

}

相關問題