我需要将 GroupData 和 ChildData 直接插入到 xml 文件本身的 ExpandableListView 中,而不使用 java。Java 文件应该只用于显示 xml 文件而不是用于插入数据。
我们的输出将是:
第 1 组 -> 11 岁儿童、12 岁儿童、13 岁儿童
第 2 组 -> 21 岁儿童、22 岁儿童、23 岁儿童
第 3 组 -> 31 岁儿童、32 岁儿童、33 岁儿童
提前致谢
我需要将 GroupData 和 ChildData 直接插入到 xml 文件本身的 ExpandableListView 中,而不使用 java。Java 文件应该只用于显示 xml 文件而不是用于插入数据。
我们的输出将是:
第 1 组 -> 11 岁儿童、12 岁儿童、13 岁儿童
第 2 组 -> 21 岁儿童、22 岁儿童、23 岁儿童
第 3 组 -> 31 岁儿童、32 岁儿童、33 岁儿童
提前致谢
我不认为这是可能的。您必须编写代码以使用 java 文件生成列表视图。
在此处查找生成可扩展列表视图的最短方法。
如果您不想使用ExpandableListview
java 代码来设置适配器,那么您可以使用cardview
展开和折叠的。这是静态(XML)折叠和展开功能的最简单方法。
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:elevation="3dp"
app:cardCornerRadius="0dp">
<LinearLayout
android:id="@+id/group_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/group_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:text="Group 1"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/child_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="vertical">
<TextView
android:id="@+id/child_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:text="Child 11" />
<TextView
android:id="@+id/child_two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:text="Child 12" />
<TextView
android:id="@+id/child_three"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
android:text="Child 13" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
将以下代码写入onClickListener
cardView = (CardView) findViewById(R.id.card_view);
childContainer = (LinearLayout) findViewById(R.id.child_container);
boolean flag = false;
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (flag == true) {
TransitionManager.beginDelayedTransition(cardView);
childContainer.setVisibility(View.GONE);
flag = false;
} else if (flag == false) {
TransitionManager.beginDelayedTransition(cardView);
childContainer.setVisibility(View.VISIBLE);
flag = true;
}
}
});
这是一个组,您可以将此代码复制到更多组。