0

Я новичок в AndroidListView, адаптеры и вкладки

У меня есть деятельность с FixedTabs + Swipe. Каждая вкладка имеет внутри нее ListView, я использую адаптер для его заполнения, потому что я использую настраиваемый объект.

Это работает, но каждый раз, когда я перемещаюсь по вкладкам, содержимое добавляется еще раз. Например: - первая вкладка отображает A и B. - тогда я перехожу ко второму, затем к третьему - когда я возвращаюсь к первой вкладке, я вижу A, B, A, B.

Я учил решать с saveInstanceState, но я вижу, что это не работает, saveInstanceState всегда нулевой Вот код

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_categories_dummy, container, false); 

    categoryListView = (ListView) rootView.findViewById(R.id.categoryListView); 



    if (savedInstanceState != null) { 
     category = savedInstanceState.getString("FRAGMENT_CATEGORY"); 
    } else { 
     // Get the category 
     switch (getArguments().getInt(ARG_SECTION_NUMBER) - 1) { 
     case 0: 
      category = "First"; 
      break; 
     case 1: 
      category = "Second"; 
      break; 
     case 2: 
      category = "Third"; 
      break; 
     } 
     getArrayList(); 
     categoryListView.setAdapter(new TweetsAdapter(getActivity(), R.layout.category_row, arrayList, getArguments().getInt(ARG_SECTION_NUMBER))); 
    } 

    return rootView; 
} 

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 

    savedInstanceState.putString("FRAGMENT_CATEGORY", category); 
} 

ответ

2

Вы забыли, чтобы очистить ваш Array или ArrayList независимо от вашего используют, чтобы держать ваши элементы списка при изменении вкладок. Я думаю, при изменении вкладок вы просто добавляете соответствующие элементы списка, соответствующие этой вкладке, но сначала нужно очистить его, прежде чем добавлять к нему новые элементы. В противном случае новые элементы будут добавлены в список старых элементов. Вот почему вы видите старые предметы. Надеюсь, поможет.

+0

спасибо, вы правы. Я учил, что проблема была в том, что касается общих предисловий и фрагментов :) – andrew

+1

Звучит здорово! Счастливое кодирование – ayon

Смежные вопросы