В настоящее время у меня есть список с использованием ArrayAdapter. Я начинаю без данных и динамически добавляю данные, используя пользовательский ввод. По какой-то причине, когда я звоню adapter.notifyDataSetChanged()
, представление списка не обновляется. Для целей тестирования я добавил некоторые базовые данные, и это происходит просто, поэтому адаптер работает правильно. Это первый раз, когда я внедряю свой собственный адаптер, поэтому я не уверен, что делаю что-то не так или нет. Благодарю. Код ниже.
Мой адаптер:
public class FeedListviewAdapter extends ArrayAdapter<FeedPostingLayout> {
// add the feed posting layout
ArrayList<FeedPostingLayout> postingLayout;
public FeedListviewAdapter(Context context, int textViewResourceId,
ArrayList<FeedPostingLayout> postingLayout) {
super(context, textViewResourceId, postingLayout);
this.postingLayout = postingLayout;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.post_layout, null);
}
FeedPostingLayout layout = postingLayout.get(position);
if (layout != null) {
TextView post = (TextView) view.findViewById(R.id.postTextView);
TextView time = (TextView) view
.findViewById(R.id.postTimeTextView);
if (post != null) {
post.setText(layout.feedPost);
}
if (time != null) {
time.setText(layout.feedTime);
}
}
return view;
}
}
Где я создаю новый массив, добавляю его в мои данные и затем обновляю адаптер:
FeedPostingLayout test = new FeedPostingLayout(post, currentTimePost);
data.add(test);
feedAdapter.notifyDataSetChanged();
Спасибо.