我通过android.com的教程创建了一个列表视图,它在一个标签小部件中,但问题是它遍布标签的区域,我想在一个标签中创建2个列表,一个在另一个旁边。 .. 我怎样才能做到这一点? 这是教程的链接:
http://developer.android.com/resources/tutorials/views/hello-listview.html
编辑:确定我在onCreate方法中有什么,这个类中有2个静态最终的String数组,名为CONTACTS和FAVORITES,我将MH的布局复制到名为list_who的xml文件中并更改了lv_cons和lv_vav的ID,以及另一个名为tv(TextView)的布局,它只有一个文本视图,因为适配器需要什么
super.onCreate(savedInstanceState);
ListView lv_cons = (ListView) findViewById(R.id.lv_cons);
ListView lv_fav = (ListView) findViewById(R.id.lv_fav);
lv_cons.setAdapter(new ArrayAdapter<String>(this, R.layout.tv, CONTACTS));
lv_fav.setAdapter(new ArrayAdapter<String>(this, R.layout.tv, FAVORITES));
setContentView(findViewById(R.layout.list_who));
答案 0 :(得分:1)
如果您想要并排显示两个列表,则需要更改一些内容。
首先是标签内容的(最小)布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="@+id/left_listview"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
<ListView
android:id="@+id/right_listview"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
如果您关注了您链接的Hello ListView示例代码,则必须将ListActivity
更改回Activity
。前者基本上提供了一些使用单列表的便捷方法,但是您可以使用常规活动完成相同的操作,您需要使用多个列表。
你可以使用他们的id来扩展你的ListViews和其他任何视图(没有更多的getListView()
便利方法,因为我们不再扩展ListActivity了)`:
ListView leftList = (ListView) findViewById(R.id.left_listview);
ListView rightList = (ListView) findViewById(R.id.right_listview);
从那时起,您可以添加所有内容来填充/操作列表的内容。
//编辑:如果您坚持以编程方式创建布局,请将上面的xml代码简单地转换为Java等效代码:
// Create ViewGroup as container for both lists
LayoutParams rootParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
LinearLayout root = new LinearLayout(this);
root.setLayoutParams(rootParams);
// Create LayoutParams for the lists - both identical in this example
LinearLayout.LayoutParams listParams = new LinearLayout.LayoutParams(0, LayoutParams.FILL_PARENT);
listParams.weight = 1;
ListView leftList = new ListView(this);
ListView rightList = new ListView(this);
leftList.setLayoutParams(listParams);
rightList.setLayoutParams(listParams);
// Add lists to container
root.addView(leftList);
root.addView(rightList);
// Set container as content view
setContentView(contentView);
答案 1 :(得分:0)
如果您希望在单独的标签中处理两个单独的ListView
(即每个标签中的ListView
),请按照本教程进行操作:Android TabActivity with two list views。
您只需制作一个复合布局,然后以编程方式从xml中提取tabHost
,然后即时对标签进行充气。如果您希望两个列表通过Intent
相互通信,我还建议您使用此方法。两个选项卡都将托管在一个活动中。如果我误解了你的问题,你想在一个活动中显示两个单独的相邻列表,那就忽略了我的答案。
我认为这就是你要找的东西。祝你好运。