如何在Android中更改文本视图的可见性并隐藏运行时的行为?

时间:2015-06-05 09:42:33

标签: android listview

我的ArrayList包含HashMap。 一个HashMap对象有3个键值对。

所以就是这样......

Category : A
Name     : Name 1
Price    : 100

我想按类别进行分组并制作像这样的列表视图.....

A
===============
Name 1     100
Name 2     100
Name 3     100

B
===============
Name 1     100
Name 2     100
Name 3     100

C
===============
Name 1     100
Name 2     100
Name 3     100

但我的listview.xml就是这样。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content""
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/category"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/card_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/card_type_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>


</LinearLayout>

我的问题是如何根据arraylist对此Category进行分组,并有一个列表视图。 我如何动态更改此列表视图的行为? 因为我的列表视图包含这3个字段的所有时间。

我有什么选择?

1 个答案:

答案 0 :(得分:0)

我只是谈谈一些问题

  1. 对于列表视图项布局,您可能需要一个额外的视图来显示分隔符的类别和可能的类别。
  2. 关于排序。您可以实现像@xwhyLike这样的比较器。 检查链接以获取有关如何执行此操作的详细信息。 现在如何处理排序数组列表?从列表适配器中检索项目以显示在列表视图中时,您只需先检查项目的类别,因此在此情况下,listview适配器上的位置1对应于具有类别A的项目,依此类推。如果您显示的每个类别只有3个项目会更容易,因为您可以直接在数组列表中以3的倍数直接索引并从那里选择三个连续项目以显示例如0,1,2将是类别A和3,4,5将是B.所有这些都取决于数组列表是否实际排序。
  3. 我为所有文字道歉,因为我现在无法为其编写代码(从智能手机接听)。干杯!

    PS:问题标题有很多误导性。但是,如果您有兴趣知道可以使用

    更改文本视图可见性
    mTextView.setVisibility(View.VISIBLE OR View.INVISIBLE OR View.GONE)
    

    修改

    我看到你也问了同样的问题here。在那里给出的答案和代码示例应该可以解决问题。请尝试具体说明您的问题。