我想创建一个可扩展的列表视图,除非在这种情况下,单击列表项时,我不想只显示另一个字符串列表,而是希望它显示带有文本字段的布局堕落等。
到目前为止,我有一个带有textview的parentlayout来显示标题,其中包含字段的childlayout。只是不确定如何在列表项单击上显示子布局。任何帮助是极大的赞赏!
如果我想显示字符串列表,将使用 HashMap<String, List<String>>
,所以在我的情况下,我会使用什么? HashMap<String, ?>
这里有什么?
答案 0 :(得分:0)
看起来你正在寻找像BaseExpandableListAdapter这样的东西。您可以使用您想要的任何内容自定义组视图和子视图。您只需实现一些方法。例如,getGroupView和getChildView将返回任何视图。您可以在此方法中对视图进行充气并进行设置。
以下是两篇供参考的文章: http://www.javacodegeeks.com/2013/06/android-expandablelistview-with-custom-adapter-baseexpandablelistadapter.html
http://theopentutorials.com/tutorials/android/listview/android-expandable-list-view-example/
答案 1 :(得分:0)
我最终做了什么,这更简单,更有效,我创建了一个包含我需要的所有字段的线性布局,并添加了一些文本视图作为章节标题。然后我宣布它是这样的
textview= (LinearLayout)findViewById(R.id.textviewid);
textview.setVisibility(View.GONE);
然后编写了一个名为toggle
的方法 public void toggle_basicInfo(View v){
if(textview.isShown()){
textview.setVisibility(View.GONE);
}
else {
textview.setVisibility(View.VISIBLE);
}
}
我的xml看起来像
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Basic Info"
android:clickable="true"
android:onClick="toggle_basicInfo"
android:textSize="20sp"
android:paddingTop="8dp"
android:id="@+id/text"
android:layout_above="@+id/linearLayout"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="#ff3a65ff" />
当我单击我的文本视图时,它将隐藏/显示您定义的任何内容以隐藏。例如,您可以隐藏LinearLayout等。通过这样做,文本字段的状态条目在隐藏和显示时保持不变。