1. 程式人生 > >上拉重新整理和ListView多條目

上拉重新整理和ListView多條目

public class MainActivityextends AppCompatActivity implementsXListView.IXListViewListener{ private XListViewxlist_view;

private ListmLists =new ArrayList<>();

private MyAdapteradapter ;

private int index =1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

adapter =new MyAdapter(mLists,MainActivity.this);

xlist_view.setAdapter(adapter);

new MyTask().execute(mUrl+index);//

}

private void initView() {

xlist_view = (XListView) findViewById(R.id.xlist_view);

//設定是否可以上拉重新整理和下拉載入

xlist_view.setPullLoadEnable(true);

//設定點選事件

xlist_view.setXListViewListener(this);

}

@Override

public void onRefresh() {

//清除集合中的資料

mLists.clear();

//新增資料

new MyTask().execute(mUrl+1);

//停止重新整理

xlist_view.stopRefresh();

}

@Override

public void onLoadMore() {

//載入更多

new MyTask().execute(mUrl+(++index));

//停止載入更多

xlist_view.stopLoadMore();

}

//非同步載入資料

class MyTaskextends AsyncTask>{

@Override

    protected List doInBackground(String... strings) {

try {

    String jsonStr = Utils.get(strings[0]);

    Gson gson =new Gson();

    MyData data = gson.fromJson(jsonStr, MyData.class);

    return data.getData();

}catch (Exception e) {

e.printStackTrace();

}

return null;

}

@Override

    protected void onPostExecute(List dataBeans) {

    super.onPostExecute(dataBeans);

    mLists.addAll(dataBeans);

    adapter.notifyDataSetChanged();

}

}