Как отобразить 2 вида в 1 активности (андроид)?

Предположим, у меня открыт веб-просмотр:

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

Я просто хочу создать ListView над этим веб-просмотром (прикрывая его … но sitll, позволяющий запустить веб-просмотр). Я мог включать и выключать виды. Благодарю.

    Вы можете использовать FrameLayout ; Таким образом оба представления будут расположены поверх другого. Затем вы можете переключить их видимость с помощью View.setVisibility(..) .

    [EDIT: ADDED CODE]

    Это мой макет 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); } } 

    Примечание . Код может быть неполным, но я надеюсь, что он передаст мою точку зрения.

    Да, setVisibility, вероятно, поможет вам, если вы хотите программным образом переключать Views на (View.VISIBLE) и выключить (VIEW.GONE).

    Относительно вашего комментария к Samuhs ответ: на Java у вас нет множественного наследования. Но ListActivity наследует от Activity, поэтому ListActivity практически одинаково (и больше) как Activity.

    Кроме того, вам не нужно использовать ListActivity для отображения ListViews, он просто предоставляет некоторые удобства для обработки действий на основе списка, поскольку они настолько распространены.

    Какова именно ошибка, которую вы получаете?