ListView显示一行而不是多行的多列

时间:2013-09-23 20:01:03

标签: android listview

第1行的列表视图

“第1栏”

“第2栏”

“第3栏”

有没有办法在一行上显示多个列。现在我可以在列表视图中列出多行。我正在寻找偏好活动,我想要实现类似的东西。我希望每个列都可以点击。

编辑:一些澄清。

目前我有一个列表视图,用于填充数据库中的每一行。

的ListView

“第1行”

“第2行”

“第3行”

等...

当我单击ListView中的任何这些项目时,例如“第2行”,它会调用一个活动,该行将列中的所有列列入textview。我想要实现的是以listview方式列出每列。因此,当点击“第2行”时,它应该会带我到这样的视图。

显示:

“第1栏”

“第2栏”

“第3栏”

6 个答案:

答案 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_weightandroid: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,将触摸放到它下面的视图中),并在列表视图中使用创建的适配器。你应该得到预期的效果。