0

まるでそこにいないようです。コンパイルされますが、各グループに表示も選択もできません。これがスクリーンショットです:

ここに画像の説明を入力してください

これが私のActivityクラスです。子供のための膨らんだxmlは、そこにはほとんどありません。

package com.anthonyce.mcathomie;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class PlayoptionsActivity extends Activity {
ExpandableListView Mtopics;
ExpandableAdapter MtopicsAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_playoptions);
    //set up adapter
    MtopicsAdapter = new ExpandableAdapter();
    Mtopics = (ExpandableListView) findViewById(R.id.mtopicsListView);
    Mtopics.setAdapter(MtopicsAdapter);
    //Mtopics.setGroupIndicator(null);
}

public class ExpandableAdapter extends BaseExpandableListAdapter {
        private String[] groups = { "People Names", "Dog Names", "Cat Names",
        "Fish Names" };
private String[][] children = { { "Arnold" }, { "Ace" }, { "Fluffy" },
        { "Goldy" } };

    public Object getChild(int groupPosition, int childPosition) {
            return children[groupPosition][childPosition];
    }

    public long getChildId(int groupPosition, int childPosition) {
            return childPosition;
    }

    public View getChildView(final int groupPosition, final int childPosition,
            boolean isLastChild, View convertView, ViewGroup parent) {

        final class ExpandChildRow extends LinearLayout {
            public ExpandChildRow(Context context) {
                super(context);
                LayoutInflater childInflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                LinearLayout childView = (LinearLayout) childInflate.inflate(R.layout.mtopics_childrow, this, true);

                TextView childtxt = (TextView)childView.findViewById(R.id.mtopicchildtext);
                childtxt.setText(getChild(groupPosition, childPosition).toString());
            }
        }

        ExpandChildRow ChildRow = new ExpandChildRow(getBaseContext());
        return ChildRow;
    }

    public int getChildrenCount(int groupPosition) {
        return children[groupPosition].length;
    }

    public Object getGroup(int groupPosition) {
        return groups[groupPosition];
    }

    public int getGroupCount() {
        return groups.length;
    }

    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    public View getGroupView(final int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {

        final class ExpandGroupRow extends LinearLayout {
            public ExpandGroupRow(Context context) {
                super(context);
                LayoutInflater groupInflate = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                LinearLayout groupView = (LinearLayout) groupInflate.inflate(R.layout.mtopics_grouprow, this, true);

                TextView grouptxt = (TextView)groupView.findViewById(R.id.mtopicgrouptext);
                grouptxt.setText(getGroup(groupPosition).toString());
            }
        }

        ExpandGroupRow GroupRow = new ExpandGroupRow(getBaseContext());
        return GroupRow;

    }

    public boolean hasStableIds() {
        return true;
    }

    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }

}
}
4

2 に答える 2

1

ああ、私はとても初心者です。それが機能していた理由は、グループ行のどこかにあるチェックボックスがグループディバイダーなどと競合していたためです。たぶん、グループの仕切りは実際にはチェックボックス自体です。チェックボックスを外すだけで、すべてが再び機能しました。レイアウトxmlファイルを修正する必要があると思います。

于 2012-09-06T05:57:42.473 に答える
1

問題はこれにあると思います。このクラスをUI要素として使用しようとしていますが、コンストラクターでclass ExpandGroupRow extends LinearLayout のレイアウトパラメーターを設定していません。thisこのクラスの代わりに、インフレータによって返されるLinearLayoutを使用する方が簡単な場合があります。何かのようなもの:

public View getGroupView(final int groupPosition, boolean isExpanded,
        View convertView, ViewGroup parent) {

            LayoutInflater groupInflate = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            LinearLayout groupView = (LinearLayout) groupInflate.inflate(R.layout.mtopics_grouprow, parent, false);

            TextView grouptxt = (TextView)groupView.findViewById(R.id.mtopicgrouptext);
            grouptxt.setText(getGroup(groupPosition).toString());
            return groupView;

}
于 2012-09-06T00:52:53.427 に答える