0

新しいデータが追加されるたびに更新する必要があるフラグメント クラスに Listview があります。リストに新しいデータが反映されない

私のフラグメントクラス:

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

        View view = inflater.inflate(R.layout.messagelist, null);
        listView = (ListView) view.findViewById(R.id.listOfMessages);

    messageList();
    return view;

}

プライベートボイドメッセージリスト(){

    msgRecordList.addAll((AppService.getInstance()).getMsgId());
    if (!(msgRecordList.equals(""))) {


        msgListAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, addMessage());  //addMessage adds data to the list


         listView.setAdapter(msgListAdapter);
         ((BaseAdapter) msgListAdapter).notifyDataSetChanged();


        listView.setVisibility(View.VISIBLE);
    } else {
        System.out.println(" i am in else");
    }
    return listView;

}


protected List<String> addMessage() {

    List<String> msgList = new ArrayList<String>();
    int size = AppService.getInstance().getMsgId().size();
    System.out.println("sizeee:::" + size);
    for (int i = 0; i < size; i++) {
        msgList.add(AppService.getInstance().getMsgTimeStamp().get(i) + " : "
                + AppService.getInstance().getMsgDescription().get(i));
    }

    return msgList;
}
4

1 に答える 1

0

データを更新する場所でこのコードを使用します。

myListAdapter.notifyDataSetChanged();

List<object> list= addMesage();
listview.setAdaptor("**", "***", list);

そして、notifydatasetChanged(); を使用します。

于 2012-08-17T09:22:29.720 に答える