2013-04-11 4 views
0

У меня есть простой фрагмент MyListFragment, который показывает один простой массив данных на экране.Изменение содержимого спискаFragment

public class MyListFragment extends ListFragment { 
     private ArrayAdapter<String> adapter; 
     public ArrayAdapter<String> getAdapter() { 
      return adapter; 
     } 
     public void onActivityCreated(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState); 
      String[] values = new String[] {"data", "data", "data"}; 
      adapter = new ArrayAdapter<String>(getActivity(), 
       android.R.layout.simple_list_item_1, values); 
      setListAdapter(adapter);   
      } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
     return super.onCreateView(inflater, container, savedInstanceState); 
    } 
} 

Интересно, как я могу динамически изменять эти данные из своей деятельности? Пожалуйста, скажите мне, есть ли простой способ, как это сделать! Я пытался, но не удалось ...

UPD: Я добавил функцию changeContent к MyListFragment:

public void changeContent(String[] value) { 
     adapter.addAll(value); 
     adapter.notifyDataSetChanged();  
    } 
} 

Как вы видите, адаптер является глобальной переменной, и она инициализируется внутри onActivityCreated, но моя программа падениям потому что внутри changeContent в равных нулю! Я не могу понять, почему!

ответ

1

Вы могли бы написать функцию, которая изменяет свои значения переменной, а затем, как только вы заполнили его с новыми данными просто позвоните

adapter.notifyDataSetChanged(); 

, чтобы заполнить список с новыми данными.

+0

Не могли бы вы рассказать об этом подробнее? – user1933770

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