我正在使用SherlockListFragment(与ListFragment相同)来显示短信对话列表
这是代码
public static class TitlesFragment extends SherlockListFragment
{
static ConversationAdapter adapter;
static List<String> msgList;
static Activity activity;
static ListView listView;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
DataGetters dataGetters = new DataGetters();
activity = getActivity();
msgList = dataGetters.getCONVERSATIONS(activity.getApplicationContext());
adapter = new ConversationAdapter(activity, msgList);
setListAdapter(adapter);
}
上面的代码打印所有当前的短信对话 像这样:
我通过调用adapter.notifyDataSetChanged()来刷新下面代码中的适配器;收到新的短信时会调用女巫
public class ReceiverClass extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
Thread.sleep(2000);
return null;
}
@Override
protected void onPostExecute(String result) {
TitlesFragment.adapter.notifyDataSetChanged();
}
但是,暂停代码会覆盖现有的列表视图项目,这些项目需要添加新的列表项位置,如下所示:
当我重新创建i活动时,我得到了我想要的东西,但只有这样:示例:
答案 0 :(得分:1)
您很可能错误地修改了ListAdapter所附加的List。
答案 1 :(得分:0)
所以问题不在于我没有用新位置修改适配器列表
以下是需要添加的代码
msgList= dataGetters.getCONVERSATIONS(activity.getApplicationContext());
ConversationAdapter.msgList = msgList;
TitlesFragment.adapter.notifyDataSetChanged();
感谢Mark Nguyen