Я устанавливаю пользовательский базовый адаптер для списка массивов, но метод getView () моего адаптера не вызывается.Я перепробовал много решений, но ни одно из них не помогло мне.Я вызываю функцию setAdapter () из postExecute Aynctask
@Override
protected void onPostExecute(ArrayList<Object> objects) {
MyListAdapter myAdapter = new MyListAdapter(MySearchList.this,objects);
ListView lv = findViewById(R.id.MyList);
lv.setAdapter(myAdapter);
Log.d("done", "onPostExecute: Done");
}
И мой пользовательский класс адаптера
public class MyListAdapter extends BaseAdapter {
private final ArrayList<Object> myList;
private final Activity context;
private LayoutInflater inflater;
public MyListAdapter(Activity context , ArrayList<Object> myList) {
this.myList = myList;
inflater = LayoutInflater.from(context);
this.context = context;
Log.d("constructor", String.valueOf(myList.size()));
}
@Override
public int getCount() {
Log.d("", "getCount: ");
return myList.size();
}
@Override
public Object getItem(int position) {
return myList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View rowView;
Log.e("adapting", myList.get(position).toString() );
if (myList.get(position) instanceof wordDefination){
Log.e("adapting", myList.get(position).toString() );
rowView = inflater.inflate(R.layout.word_meaning_single,null,true);
}
else{
rowView = inflater.inflate(R.layout.word_meaning_single,null,true);
}
return rowView;
}
@Override
public int getViewTypeCount() {
return 2;
}
, конструктор адаптера вызывает, но метод getView () не является
обновление: я также пытался использовать ArrayAdapter вместо BaseAdapter, но не работал
public class MyListAdapter extends ArrayAdapter<Object> {
private final ArrayList<Object> myList;
private final Activity context;
private LayoutInflater inflater;
public MyListAdapter(Activity context , ArrayList<Object> myList) {
super(context,R.layout.word_meaning_single,myList);
this.myList = myList;
inflater = LayoutInflater.from(context);
this.context = context;
Log.d("constructor", String.valueOf(myList.size()));
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View rowView;
Log.e("adapting", myList.get(position).toString() );
if (myList.get(position) instanceof wordDefination){
Log.e("adapting", myList.get(position).toString() );
rowView = inflater.inflate(R.layout.word_meaning_single,null,true);
}
else{
rowView = inflater.inflate(R.layout.word_meaning_single,null,true);
}
return rowView;
}
}