У меня есть выпадающий список в моем макете, чтобы отфильтровать мои списки, я использую метод onOptionsItemSelected для фильтрации своих списков, теперь я успешно фильтрую мои EventListviewes с помощью метода displayEventList(). Но, к сожалению, отфильтрованное listview не отображается в макете (после операции фильтра фильтра событий, который может не отображаться в макете), пожалуйста, помогите мне решить эту проблему.Пустой список отображается после выполнения операции фильтра
public boolean onOptionsItemSelected(MenuItem item) {
Log.d("onOptionsItemSelected", "yes");
switch (item.getItemId()) {
case R.id.all:
displayEventInvitationList(inflater, container,savedInstanceState);
return true;
case R.id.event:
displayEventList(inflater, container,savedInstanceState);
return true;
case R.id.invitation:
displayInvitationList(inflater, container,savedInstanceState);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public View displayEventList(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view = inflater.inflate(R.layout.chatwindow_tab, container, false);
context = getActivity().getApplicationContext();
sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
Context.MODE_PRIVATE);
DatabaseHelper dbHelper = new DatabaseHelper(context);
userMO = dbHelper.getRingeeUserData(1);
new AsyncTask<Void, Void, List<EventMO>>() {
@Override
protected List<EventMO> doInBackground(Void... arg0) {
eventMOs = gson.fromJson(eventDelegates.getAllEventFromUser(userMO, context), new TypeToken<List<EventMO>>() {
}.getType());
List<EventMO> groupEventList = new ArrayList<>();
for (EventMO eventMO : eventMOs) {
groupEventList.add(eventMO);
}
return groupEventList;//it returns Eventlist
}
@Override
protected void onPostExecute(List<EventMO> groupEventList) {
groupEventMoList = groupEventList;
chatDisplayAdapter = new ChatDisplayAdapter();
groupEventView.setAdapter(chatDisplayAdapter);
groupEventView.setItemsCanFocus(true);
groupEventView.setTextFilterEnabled(true);
groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
}
}.execute(null, null, null);
return view;
}
private class ChatDisplayAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ChatDisplayAdapter() {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return groupEventMoList.size();
}
@Override
public Object getItem(int position) {
return groupEventMoList.get(position);
}
@Override
public long getItemId(int id) {
// for sqllite management
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(R.layout.chatwindow, null);
convertView.setClickable(true);
convertView.setFocusable(true);
chatTitle = (TextView) convertView.findViewById(R.id.chat_title);
chatPlace = (TextView) convertView.findViewById(R.id.event_place);
chatDate = (TextView) convertView.findViewById(R.id.event_date);
chatPlace.setText(groupEventMoList.get(position).getPlace());
String actualDate = groupEventMoList.get(position).getEventDate();
//chatDate.setText(groupEventMoList.get(position).getEventDate());
try {
//date format changed here
Date formatDate = new SimpleDateFormat("yyyy-MM-dd").parse(actualDate);
dateResult = new SimpleDateFormat("dd-MM-yyyy").format(formatDate);
} catch (ParseException e) {
e.printStackTrace();
}
chatDate.setText(dateResult);
chatTitle.setText(groupEventMoList.get(position).getText());
convertView.setTag(position);
View v = convertView.findViewById(R.id.chat_window_single);
v.getRootView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("position", v.getTag().toString());
Intent groupAct = new Intent(context, GroupChatActivity.class);
groupAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
groupAct.putExtra("eventMo", groupEventMoList.get(Integer.parseInt(v.getTag().toString())));
startActivity(groupAct);
}
});
}
return convertView;
}
}
}
Вы устанавливаете адаптер дважды, последние set: groupEventView.setAdapter (dataAdapter) ;. Что такое dataAdapter? – Carnal
Я ошибаюсь chatdisplayadapter - это только я использую .. теперь я редактирую свой код .. –
Какая польза от раздувания зрения здесь. Вы не использовали завышенный вид? – arun