[英]How do I display 2 views in 1 activity (android)?
假设我打开了一个webview:
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);
}
我只是想在这个webview上面创建一个ListView (覆盖它...但是sitll允许webview运行)。 我可以打开和关闭视图。 谢谢。
你可以使用FrameLayout ; 这样两个视图将被排列在另一个之上。 然后,您可以使用View.setVisibility(..)
方法切换其可见性。
[编辑:添加代码]
这是我的布局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,它在View Heirarchy中同时包含ListView和WebView,但只有其中一个是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);
}
}
注意:代码可能不完整,但我希望它确实向我表达了我的观点。
是的,如果要以编程方式切换视图(View.VISIBLE)和关闭(VIEW.GONE),setVisibility可能会对您有所帮助。
关于你对Samuhs回答的评论:在Java中你没有多重继承。 但ListActivity继承自Activity,因此ListActivity与Activity几乎相同(甚至更多)。
此外,您不必使用ListActivity显示列表视图,它只是提供了一些方便,东西为基础处理列表的活动,因为它们是如此普遍。
你得到的错误究竟是什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.