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

Java Android中的动态项目列表或项目列表中的列表,java,android,android-listview,Java,Android,Android Listview,如何创建动态项目列表或其他项目列表中的项目,如BEETALK Android软件 大家好。我正在搜索如何在列表onClick事件项上添加描述。 就像联系名单上的甜菜糖一样。 我想单击item1并查看说明1,单击item2时说明1隐藏并说明2显示,如果item1单击并说明1显示关闭说明1,则结束。 第0步: 项目1 项目2 第1步: 项目1 描述1 项目2 第二步: 项目1 项目2 描述2 第三步: 项目1 项目2 你知道吗 在您的列表适配器中创建一个setSelected(

如何创建动态项目列表或其他项目列表中的项目,如BEETALK Android软件
大家好。我正在搜索如何在列表onClick事件项上添加描述。 就像联系名单上的甜菜糖一样。
我想单击item1并查看说明1,单击item2时说明1隐藏并说明2显示,如果item1单击并说明1显示关闭说明1,则结束。

第0步:

  • 项目1
  • 项目2
第1步:

  • 项目1
  • 描述1
  • 项目2
第二步:

  • 项目1
  • 项目2
  • 描述2
第三步:

  • 项目1
  • 项目2

你知道吗

在您的列表适配器中创建一个
setSelected(int位置)
方法。然后从您的
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;
}
你需要使用,例如

  • 为组视图和子视图定义两个XML布局,向每个布局添加
    TextView
    ,以显示项目文本和说明
  • 在代码中,将项目文本设置为组的
    TextView
    ,将描述设置为子
    TextView
    ,所有子视图最初都将隐藏
  • 使用
    ExpandableListView
    collapseGroup()
    expandGroup()
    方法折叠或展开组
  • 例如,要在显示说明之前折叠展开的组,请首先在
    ListAdapter
    类中定义
    getGroupCount()
    方法:

    @Override
      public int getGroupCount() {
        return yourList.size();
    }
    
    然后调用此方法以折叠以前扩展的组:

    private void collapseAll() {
      int cnt = listAdapter.getGroupCount();
      for (int i = 0; i < cnt; i++){
         yourList.collapseGroup(i);
      }
    }
    

    为此,您需要将子列表的项目文本转换为HTML文本,方法是迭代动态
    列表/ArrayList
    ,并在HTML标记中创建/附加
    字符串
    数据。

    您是否尝试过使用对话框而不是在列表视图中添加描述?我以前尝试过,但必须是动态项目列表的一种方法单击添加和删除或在listview中移动项目以显示说明。您是否尝试过
    ExpandableListView
    ?有任何方法可以在listview上动态添加项目以进行说明!然后您可以尝试这样的方法mAdapterView.setOnItemClickListener(new OnItemClickListener(){@Override public void onItemClick(AdapterView arg0,View arg1,int position,long arg3){TextView description=new TextView(getActivity());description.setText(“description”);currentView=((LinearLayout)arg0.getChildAt(位置));currentView.addView(说明);}但是,由于您希望在listView中一次只显示一个描述,因此从以前的adapterView中删除视图并将其仅保留为当前选定的视图将非常繁琐。我在可扩展列表视图之前尝试过,但列表中有内部列表,我想向列表中动态添加项目并将其删除。请参见编辑,您可以使用TagHandler类显示动态儿童视图上的c儿童列表,由您决定如何制作!
    Html.fromHtml("<ul><li>Item 1</li>...</ul>", null, new MyTagHandler()))