Не удалось создать экземпляр ExpandableListAdapter, потому что он абстрактный - PullRequest
0 голосов
/ 25 сентября 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

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

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

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

0 голосов
/ 25 сентября 2018

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

...