Я пытаюсь создать собственный компонент Android. По этой причине я сделал так, чтобы мой класс расширял «View», но класс уже расширял «BaseAdapter». Компонент должен выглядеть примерно так: http://www.brightec.co.uk/blog/android-listview-alphabet-scroller, но он должен появиться в палитре под компонентом CustomView.
Это класс, который должен наследовать View вместо BaseElement:
public class AlphabetListAdapter extends BaseAdapter {
public static abstract class Row {}
public static final class Section extends Row {
public final String text;
public Section(String text) {
this.text = text;
}
}
public static final class Item extends Row {
public final String text;
public Item(String text) {
this.text = text;
}
}
private List<Row> rows;
public void setRows(List<Row> rows) {
this.rows = rows;
}
}
И это класс, который создает экземпляр и использует его в качестве адаптера.
открытый класс MainActivity расширяет ListActivity {
private AlphabetListAdapter adapter = new AlphabetListAdapter();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_alphabet);
for (String country : countries) {
rows.add(new Item(country));
}
adapter.setRows(rows);
setListAdapter(adapter); //not able to do this with a class that extends View
updateList();
}
}
Весь исходный код доступен по адресу: https://github.com/brightec/AlphabetScroller (это не мой код, это пример, который я нашел в Интернете)
Есть ли способ сделать это? Я пытался найти его в Google, но похоже, что один класс не может расширить два класса. Есть ли другой способ заставить этот проект работать как один компонент?