Java Android中的动态项目列表或项目列表中的列表
如何创建动态项目列表或其他项目列表中的项目,如BEETALK 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(
大家好。我正在搜索如何在列表onClick事件项上添加描述。 就像联系名单上的甜菜糖一样。
我想单击item1并查看说明1,单击item2时说明1隐藏并说明2显示,如果item1单击并说明1显示关闭说明1,则结束。
第0步:
- 项目1
- 项目2
- 项目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;
}
你需要使用,例如
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()))