可扩展列表未使用Java类中的AdapterView.OnItemSelectedListener展开

问题描述 投票:1回答:1

我正在创建一个类,其中我正在使用带有可扩展列表的滚动工具栏,每件事都工作正常,但是当我单击可扩展列表时,它无法按我的要求扩展,如果我缺少某些东西,请帮帮我。我已经创建了Adapter类并在我的主类中使用了它。

public class MyAdapter extends BaseExpandableListAdapter 
{

    Context context;
    List<String> listGroup;
    HashMap<String, List<String>> listItems;
    public MyAdapter(Context context, List<String> listGroup, HashMap<String,List<String>>
            listItems) {
        this.context = context;
        this.listGroup = listGroup;
        this.listItems = listItems;
    }
    @Override
    public int getGroupCount() {
        return listGroup.size();
    }
    @Override
    public int getChildrenCount(int i) {
        return this.listItems.get(this.listGroup.get(i)).size();
    }
    @Override
    public Object getGroup(int i)
    { return this.listGroup.get(i);  }

    @Override
    public Object getChild(int i, int i1) {return this.listItems.get(this.listGroup.get(i)).get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i;
    }

    @Override
    public long getChildId(int i, int i1)
    {
        return i1;
    }

    @Override
    public boolean hasStableIds()
    {
        return false;
    }

    @Override
    public View getGroupView(int i, boolean b, View views, ViewGroup viewGroup) {
        String group = (String) getGroup(i);
        if (views== null){
            LayoutInflater layoutInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            views = layoutInflater.inflate(R.layout.list_group,null);
        }

        TextView textView = views.findViewById(R.id.list_parent);
        textView.setText(group);
        return views;
    }

    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, final ViewGroup viewGroup) {
        final String child = (String) getChild(i,i1);

        if (view == null){
            LayoutInflater layoutInflater = (LayoutInflater) this.context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = layoutInflater.inflate(R.layout.list_items,null);

        }
        TextView textView = view.findViewById(R.id.text_view1);
        textView.setText(child);

        return view;
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return true;
    }
}

主类是我正在使用扩展列表的滚动类

public class ScrollingActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    // Expandable list Definations
    ExpandableListView expandable_list;
    HashMap<String, List<String>> listitems;
    List<String> listHeader;
    MyAdapter myAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_scrolling);

        //FindViewById of Expandable Data List
        expandable_list = findViewById(R.id.expandable_list);
        listHeader = new ArrayList<>();
        listitems = new HashMap<>();
        myAdapter = new MyAdapter(this, listHeader, listitems);
        expandable_list.setAdapter(myAdapter);
        initlistData();


    private void initlistData() {

        listHeader.add(getString(R.string.group11));

        String[] aray;

        List<String> list = new ArrayList<>();
        aray = getResources().getStringArray(R.array.group1);
        for (String item : aray) {
            list.add(item);
        }

        listitems.put(listHeader.get(0), list);
        myAdapter.notifyDataSetChanged();
    }

我已经编辑了主代码,只是粘贴了主代码,唯一的主要问题是每件事都在起作用,但是当我单击可扩展列表时,它就不会按要求滚动。

android expandablelistview
1个回答
0
投票
您先初始化了lists,然后将adapter设置为expandablelistview
© www.soinside.com 2019 - 2024. All rights reserved.