2010-02-10 1 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);  

    } 

Как вы можете видеть, я сначала создаю веб-представление. Затем я хочу, чтобы он сразу исчез. Затем я хочу, чтобы Listview появился. Но проблема в том, что я не могу выполнять Listview, если я не занимаюсь ListActivity ... но тогда я не могу заниматься Activity ...Как сделать WebView AND ListView в той же деятельности onCreate()?

ответ

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 в View иерархии, но только один из они будут видны:

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 Вы можете, безусловно, сделать ListView без ListActivity. Вы также можете использовать WebView с ListActivity.

+5

И Java оленья кожа позволяет множественное наследование "так общественный класс imhello расширяет активность, ListActivity" неверна – ccheneson

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



} 

}

Смежные вопросы