¿Cómo se muestran 2 vistas en 1 actividad (android)?

Supongamos que tengo una webview abierta:

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 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); } 

Simplemente quiero crear un ListView por encima de esta webview (cubriéndolo … pero sitll permitiendo que la webview se ejecute). Podría cambiar las vistas y desactivar. Gracias.

Puede utilizar FrameLayout ; de esa manera ambos puntos de vista estarán dispuestos encima de otro. A continuación, puede cambiar su visibilidad utilizando el View.setVisibility(..) .

[EDIT: CÓDIGO ADICIONAL]

Este es mi layout 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> 

Ahora, creo una actividad que tendrá tanto ListView y WebView en su heirarchy View, pero sólo uno de ellos sería visible:

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

Nota: El código puede no estar completo, pero espero que transmita mi punto a usted.

Sí, setVisibility probablemente le ayudará si desea cambiar de forma programática las vistas en (View.VISIBLE) y desactivar (VIEW.GONE).

En cuanto a su comentario a Samuhs respuesta: En Java no tiene herencia múltiple. Pero ListActivity hereda de Activity para que ListActivity sea prácticamente la misma (y más) como una Activity.

Además, no tiene que usar ListActivity para mostrar ListViews, simplemente proporciona algo de conveniencia para manejar actividades basadas en listas ya que son tan comunes.

¿Cuál es exactamente el error que obtienes?

  • La aplicación de vista web de Android no permite que el reproductor de video pase a pantalla completa
  • ¿AlertDialog admite WebView?
  • Cómo grabar la pantalla de actividad de la webview con Android MediaCodec?
  • Android webview loadDataWithBaseURL cómo cargar imágenes de los activos?
  • Interceptar llamada de red desde Android Java / JNI
  • Android: mantenimiento de la API SCORM entre dos webviews
  • Método WebView + WebChromeClient onCreateWindow no se llama a target = "_ blank"
  • Adición de un diálogo de progreso en una vista web
  • ¿Necesita Android WebView permisos para abrir URL externas?
  • Ocultar / Mostrar la barra de herramientas cuando se desplaza el fragmento en las pestañas
  • Cómo recuperar y modificar el contenido HTML de WebView con Http Post
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.