0

我有一个简单的 MyListFragment 片段,它在屏幕上显示一个简单的数据数组。

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:我向 MyListFragment 添加了一个函数 changeContent:

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

如您所见,适配器是一个全局变量,它在 onActivityCreated 内部进行了初始化,但我的程序崩溃了,因为内部 changeContent in 等于 null!我不明白为什么!

4

1 回答 1

1

您可以编写一个函数来更改您的 values 变量,然后在用新数据填充它后,只需调用

adapter.notifyDataSetChanged();

用新数据填充您的列表。

于 2013-04-11T19:35:27.943 回答