第1行的列表视图
“第1栏”
“第2栏”
“第3栏”
有没有办法在一行上显示多个列。现在我可以在列表视图中列出多行。我正在寻找偏好活动,我想要实现类似的东西。我希望每个列都可以点击。
编辑:一些澄清。目前我有一个列表视图,用于填充数据库中的每一行。
的ListView
“第1行”
“第2行”
“第3行”
等...
当我单击ListView中的任何这些项目时,例如“第2行”,它会调用一个活动,该行将列中的所有列列入textview。我想要实现的是以listview方式列出每列。因此,当点击“第2行”时,它应该会带我到这样的视图。
显示:
“第1栏”
“第2栏”
“第3栏”
答案 0 :(得分:1)
我不确定您要实现的目标,但您可以在已有的垂直LinearLayout中使用水平LinearLayout作为行。您是否需要将整个列作为单个实体进行单击?如果你只需要像PreferenceActivity那样在列中对齐的可点击元素,我会使用GridLayout。
答案 1 :(得分:1)
使用gridView执行以下操作:
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this)); // see
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
//here, switch position, set the row & column content
}
});
我认为这是最好的方式。
答案 2 :(得分:1)
您需要搜索的是HorizantalListView。
这是由某人制作的自定义控件。它很受欢迎。
所有Android开发人员都使用它。
你会在互联网上找到一个woking样本。
你需要一段时间来理解它。因为在某些时候你需要修改它。当项目点击监听器需要一些技巧来实现。
祝你好运。
答案 3 :(得分:1)
那么,根据您的编辑,也许您正在寻找“ExpandableListView”?
答案 4 :(得分:0)
通过将行的所有元素包装在LinearLayout中,可以实现类似的功能,并为其提供android:weightSum
。为每个元素提供一些android:layout_weight
和android:layout_width="0dp"
。虽然不是最优雅,但效果很好。
答案 5 :(得分:0)
假设你想做这样的事情:
列表视图:
第1行
“column”“column”“column”
第2行
“column”“column”“column”
第3行
“column”“column”“column”
并希望每一列都可以点击,而不会整行“吸收”整个点。
好吧,你可以使用一个表格更好的“表格布局”。
但是,您仍然可以通过以下列表视图手动执行此操作:
1)创建一个适配器,该适配器在水平三个视图(“列”“列”“列”)中吐出行布局(在getView()方法上)
2)确保在行XML上使用clickable =“true”设置三个视图中的每个视图,并使用setOnClickListener为每个视图注册一个侦听器。
3)禁用他们的父布局,点击你的xml。
4)不要为列表视图对象注册onItemClickListener(或者注册一个只返回false的onItemClickListener,将触摸放到它下面的视图中),并在列表视图中使用创建的适配器。你应该得到预期的效果。