Я хочу показать некоторые элементы в виде списка.Проблема в том, что в представлении списка отображается только последний элемент в первой позиции представления списка.Это показывает нет.из пунктов правильно, но оставшиеся позиции остаются пустыми.
Не могу понять, где я делаю неправильно.Любая помощь, пожалуйста?Я прилагаю скриншот здесь ![Screenshot](https://i.stack.imgur.com/p9RCz.jpg)
MainActivit.java
ListView topicList;
ArrayList<Topics> topics;
ArrayList<Topics> topicsArrayList;
TopicAdapter topicAdapter;
//Inside onCreat method
topicList = findViewById(R.id.lv_list);
//Array list to show items in the list view
topics = new ArrayList<>();
topicAdapter = new TopicAdapter(this, R.layout.list_item_row, topics);
topicList.setAdapter(topicAdapter);
//Array list to add the list items
topicsArrayList = new ArrayList<>();
Topics vumika = new Topics();
vumika.setTopicName("Vumika");
topicsArrayList.add(vumika);
Topics prachin_yug = new Topics();
vumika.setTopicName("Prachin Yug");
topicsArrayList.add(prachin_yug);
Topics madhya_yug = new Topics();
vumika.setTopicName("Madhya Yug");
topicsArrayList.add(madhya_yug);
Topics adhunik_yug = new Topics();
vumika.setTopicName("Adhunik Yug");
topicsArrayList.add(adhunik_yug);
//Add all the topics to the topic list
if (topicsArrayList != null || topicsArrayList.size() > 0) {
topics.addAll(topicsArrayList);
topicAdapter.notifyDataSetChanged();
}
TopicAdapter.java
класс
public class TopicAdapter extends BaseAdapter {
private Context context;
private int layout;
private ArrayList<Topics> topics;
private ViewHolder viewHolder;
public TopicAdapter(Context context, int layout, ArrayList<Topics> topics) {
this.context = context;
this.layout = layout;
this.topics = topics;
}
public TopicAdapter(Context context, int layout, ArrayList<Topics> topics, ViewHolder viewHolder) {
this.context = context;
this.layout = layout;
this.topics = topics;
this.viewHolder = viewHolder;
}
@Override
public int getCount() {
return topics.size();
}
@Override
public Object getItem(int position) {
return topics.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
viewHolder = new ViewHolder();
if (row == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (inflater != null) {
row = inflater.inflate(layout, null);
viewHolder.topicName = row.findViewById(R.id.tv_topic_name);
row.setTag(viewHolder);
}
} else {
viewHolder = (ViewHolder) row.getTag();
}
Topics topic = topics.get(position);
viewHolder.topicName.setText(topic.getTopicName());
return row;
}
private class ViewHolder {
TextView topicName;
}
}