1

第 1 行的列表视图

“第 1 栏”

“第 2 栏”

“第 3 栏”

有没有办法在一行上显示多列。现在我可以在列表视图中列出多行。我正在研究偏好活动,我想实现类似的目标。我希望每一列都是可点击的。

编辑:一些澄清。

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

列表显示

“第 1 行”

“第 2 行”

“第 3 行”

ETC...

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

显示:

“第 1 栏”

“第 2 栏”

“第 3 栏”

4

6 回答 6

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

    }
});

我认为这对你来说是最好的方式。

于 2013-09-23T20:20:36.343 回答
1

好吧,根据您的编辑,也许您正在寻找“ExpandableListView”?

于 2013-09-23T20:47:04.350 回答
1

我不确定您要实现什么,但您可以使用水平 LinearLayout 作为您已经拥有的垂直 LinearLayout 中的一行。您是否需要将整个列作为单个实体进行点击?如果您只需要在 PreferenceActivity 等列中对齐的可点击元素,我会改用 GridLayout。

于 2013-09-23T20:14:48.520 回答
1

您需要搜索的是 HorizantalListView。

这是某人制作的自定义控件。它是如此受欢迎。

所有安卓开发者都使用它。

你会在互联网上找到一个工作样本。

你需要一些时间来理解它。因为在某些时候你需要修改它。作为项目点击监听器,它需要一些技巧来实现。

祝你好运。

于 2013-09-23T20:24:58.427 回答
0

您可以通过将行的所有元素包装在 LinearLayout 中来实现类似的效果,给它一个android:weightSum. 给每个元素一些android:layout_weightandroid:layout_width="0dp"。它工作得很好,虽然不是最优雅的..

于 2013-09-23T20:16:10.747 回答
0

假设你想做这样的事情:


列表显示:

第 1 行

“栏目”“栏目”“栏目”

第 2 行

“栏目”“栏目”“栏目”

第 3 行

“栏目”“栏目”“栏目”


并希望每一列都是可点击的,而行不会“吸收”整个点击。

好吧,您可以使用表现更好的“表格布局”。

但是,您仍然可以通过在列表视图上手动执行此操作,如下所示:

1) 创建一个适配器,它吐出一个行布局(在 getView() 方法上)水平三个视图(“column”“column”“column”)

2) 确保在 XML 行上将三个视图中的每一个都设置为 clickable="true",并使用 setOnClickListener 为每个视图注册一个侦听器。

3)禁用他们的父布局点击你的xml。

4) 不要为列表视图对象注册一个 onItemClickListener(或注册一个只返回 false 的 onItemClickListener,将触摸流到它下面的视图),并在列表视图上使用创建的适配器。你应该得到想要的效果。

于 2013-09-23T20:40:19.240 回答