Android中的项目列表中的动态项目列表或列表

时间:2014-06-16 06:08:00

标签: java android android-listview

如何创建动态项目列表或其他项目列表中的项目,如BEETALK Android软件

<小时/> 大家好。我正在搜索如何在列表onClick事件上添加描述。 像联系人列表beetalk。
我想点击item1并查看description1,当点击item2 description1 hide和description2 show和结束时如果item1点击并且desc1显示关闭desc1。

第0步:

      
  • ITEM1
  •   
  • ITEM2

第1步:

      
  • ITEM1
  • DESC1
  •   
  • ITEM2

第2步:

      
  • ITEM1
  •   
  • ITEM2
  • DESC2

第3步:

      
  • ITEM1
  •   
  • ITEM2
你有任何想法吗?

2 个答案:

答案 0 :(得分:0)

在列表适配器中创建一个setSelected(int position)方法。并从onlistitemclick调用它通过点击的位置。

编辑您的适配器代码,如下所示。

 int selectedPosition = -1;
 public void setSelected(int position)
{
    selectedPosition= position;
    notifyDataSetChanged();
}

public View getView(int position, View convertView, ViewGroup parent)
{
    // your adapter code
    if(position==selectedPosition)
         description.setVisibility(View.VISIBLE);

    return convertView;
}

答案 1 :(得分:0)

您需要使用ExpandableListView,例如here

  1. 为组视图和子视图定义两个XML布局,为每个布局添加TextView以显示项目文本和说明。
  2. 在代码中,将项目文字设置为分组&#39; s TextView说明到子TextView,所有子视图都将被隐藏最初。
  3. 使用ExpandableListView的{​​{1}}和collapseGroup()方法折叠或展开群组。
  4. 例如,要在显示“说明”之前折叠展开的组,请先在expandGroup()类中定义getGroupCount()方法:

    ListAdapter

    然后调用此方法折叠以前展开的组:

    @Override
      public int getGroupCount() {
        return yourList.size();
    }
    

    修改

    您可以使用TagHandler课程与示例herehere一起使用以下内容在儿童private void collapseAll() { int cnt = listAdapter.getGroupCount(); for (int i = 0; i < cnt; i++){ yourList.collapseGroup(i); } } 上显示动态子列表:

    TextView

    为此,您需要通过迭代动态Html.fromHtml("<ul><li>Item 1</li>...</ul>", null, new MyTagHandler())) 并在其中添加/追加带有List/ArrayList数据的HTML标记,将子列表的项目文本转换为HTML文本。