Я пытаюсь использовать код из Интернета, но при подключении указанного кода к моему личному проекту получаю следующую ошибку:

ExpandableListAdapter является абстрактным; не может быть создан

Я попытался провести собственное исследование, чтобы найти ответ на мою проблему, но мне все еще не удалось исправить указанную проблему ...

Вот мой код:

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);
}

Любая помощь будет очень признательна!

0
Paul F 25 Сен 2018 в 17:40

2 ответа

Лучший ответ

@deHaar верен, ExpandableListAdapter является интерфейсом и не может быть создан напрямую . Я хотел бы ознакомиться с этим руководством для получения дополнительной информации.

Кроме того, в качестве примечания в целом: findViewById(R.id.<id>;) требует связанного <id>, определенного из вашего соответствующего макета XML: setContentView(R.layout.<layout>);

Надеюсь, это поможет!

0
Nathan 13 Апр 2019 в 23:40

Вам необходимо создать собственный класс адаптера, например, с именем «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

0
Angelina 25 Сен 2018 в 14:48