0

画面に 1 つの単純なデータ配列を表示する単純な 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: 関数 changeContent を MyListFragment に追加しました:

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

ご覧のとおり、アダプターはグローバル変数であり、onActivityCreated 内で初期化されますが、私のプログラムはクラッシュします。理由がわからない!

4

1 に答える 1

1

値変数を変更する関数を作成し、新しいデータを入力したら呼び出すだけです

adapter.notifyDataSetChanged();

リストに新しいデータを入力します。

于 2013-04-11T19:35:27.943 に答える