1

私はこのコードをインターネットで見つけましたExpandableListView. そして、それは完璧に動作します。

import android.app.ExpandableListActivity;
import android.os.Bundle;
import android.widget.ExpandableListAdapter;
import android.widget.SimpleExpandableListAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Demonstrates expandable lists backed by a Simple Map-based adapter
 */
public class SmplExpandableTest extends ExpandableListActivity {
    private static final String PARENT_KEY = "pKey";
    private static final String CHILD_KEY = "cKey";

    private ExpandableListAdapter mAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
        List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();

        Map<String, String> curGroupMap = new HashMap<String, String>();
        groupData.add(curGroupMap);
        curGroupMap.put(PARENT_KEY, "Hello");
        curGroupMap.put(CHILD_KEY, "First Order System Response");

        List<Map<String, String>> children = new ArrayList<Map<String, String>>();

        Map<String, String> curChildMap = new HashMap<String, String>();
        children.add(curChildMap);
        curChildMap.put(PARENT_KEY, "World");
        curChildMap.put(CHILD_KEY, "Second Order System");

        childData.add(children);

        // Set up our adapter
        mAdapter = new SimpleExpandableListAdapter(this, groupData,
                android.R.layout.simple_expandable_list_item_1, new String[] {
                        PARENT_KEY, CHILD_KEY }, new int[] {
                        android.R.id.text1, android.R.id.text2 }, childData,
                android.R.layout.simple_expandable_list_item_2, new String[] {
                        PARENT_KEY, CHILD_KEY }, new int[] {
                        android.R.id.text1, android.R.id.text2 });
        setListAdapter(mAdapter);
    }
}

ExpandableListViewこれをレイアウト内に挿入して、下部にボタンを追加できるようにします。これどうやってするの ?

ありがとう

4

2 に答える 2

2

Button画面の下部にを追加するには、次のExpandableListView2 つのことを行う必要があります。

  1. Activityアクティビティはではなくから拡張する必要がありExpandableListActivityます。また、カスタム レイアウトを設定する必要があります。
  2. ExpandableListViewと 'Button`を含むカスタム レイアウトを作成します。

アクティビティは次のようになります。

public class SmplExpandableTest extends Activity {
    private static final String PARENT_KEY = "pKey";
    private static final String CHILD_KEY = "cKey";

    private ExpandableListAdapter mAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_layout);
        ExpandableListView elv = (ExpandableListView) findViewById(R.id.elv);

        List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
        List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();

        Map<String, String> curGroupMap = new HashMap<String, String>();
        groupData.add(curGroupMap);
        curGroupMap.put(PARENT_KEY, "Hello");
        curGroupMap.put(CHILD_KEY, "First Order System Response");

        List<Map<String, String>> children = new ArrayList<Map<String, String>>();

        Map<String, String> curChildMap = new HashMap<String, String>();
        children.add(curChildMap);
        curChildMap.put(PARENT_KEY, "World");
        curChildMap.put(CHILD_KEY, "Second Order System");

        childData.add(children);

        // Set up our adapter
        mAdapter = new SimpleExpandableListAdapter(this, groupData,
                android.R.layout.simple_expandable_list_item_1, new String[] {
                        PARENT_KEY, CHILD_KEY }, new int[] {
                        android.R.id.text1, android.R.id.text2 }, childData,
                android.R.layout.simple_expandable_list_item_2, new String[] {
                        PARENT_KEY, CHILD_KEY }, new int[] {
                        android.R.id.text1, android.R.id.text2 });

        elv.setAdapter(mAdapter);
    }
}

レイアウトres/layout/my_layout.xmlは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
        <ExpandableListView 
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/elv" >
        </ExpandableListView>
        <Button 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btn"
            android:text="@string/btn_text" >
</LinearLayout>
于 2012-11-06T10:09:42.913 に答える
1

xml でExpandable listviewを使用し、それを次のようにバインドする必要があります。BaseExtendedAdapter

ここに例があります

于 2012-11-06T09:39:43.080 に答える