无法实例化ExpandableListAdapter,因为它是抽象的

问题描述 投票:0回答:2

我正在尝试使用来自互联网的代码,但是当将所述代码插入我的个人项目时,我收到以下错误:

“ExpandabelListAdapter”是抽象的;无法实例化

我试图做自己的研究来解决我的问题,但我仍然无法解决问题......

这是我的代码:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private ExpandableListView listView;
private ExpandableListAdapter AdapterMedia;
private List<String> listDataHeader;
private HashMap<String,List<String>> listHash;

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

    listView = (ExpandableListView)findViewById(R.id.);
    initData();


    AdapterMedia = new ExpandableListAdapter(this, listDataHeader, listHash);


    listView.setAdapter(AdapterMedia);
}

任何帮助将不胜感激!

java android abstract expandablelistadapter
2个回答
0
投票

@deHaar是正确的,ExpandableListAdapter是一个接口,无法直接实例化。我会查看这个tutorial以获取更多信息。

另外,作为一般的旁注:findViewById(R.id.<id>;)需要从相应的<id>布局定义的相关XMLsetContentView(R.layout.<layout>);

希望这有帮助!


0
投票

您需要创建一个自定义Adapter类,例如名为“MyExpandableListAdapter”,然后在该类中实现ExpandableListAdapter。您还需要实现接口中声明的所有方法。

public class MyExpandableListAdapter implements ExpandableListAdapter {
   @Override
   public void registerDataSetObserver(DataSetObserver observer) {...}
}

检查互联网上的教程:https://www.javacodegeeks.com/2013/06/android-expandablelistview-with-custom-adapter-baseexpandablelistadapter.html

© www.soinside.com 2019 - 2024. All rights reserved.