//布局文件,导入文件
XListView
XListViewFooter
XListViewHeader
list_item.xml
activity_main.xml
main.xml
xlistview_footer.xml
xlistview_header.xml
//MainActivity代码
package com.example.myxlistview; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private XListView lv; List<String> list=new ArrayList<String>(); private mydata mydata; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); mydata.notifyDataSetChanged(); close(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv=(XListView)findViewById(R.id.lv); mydata = new mydata(); //设置数据 geninfo(); lv.setPullLoadEnable(true); lv.setPullRefreshEnable(true); lv.setXListViewListener(this); lv.setAdapter(mydata); } //数据源 private void geninfo() { for (int i=0;i<100;i++) { list.add("啊" + i); } } public void close(){ lv.stopLoadMore(); lv.stopRefresh(); lv.setRefreshTime("2017-09-06"); } //上拉刷新 @Override public void onRefresh() { handler.postDelayed(new Runnable() { @RequiresApi(api = Build.VERSION_CODES.N) @Override public void run() { list.add(0,"你好"); handler.sendEmptyMessage(0); } },2000); } //下拉加载 @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { list.add("我不好"); handler.sendEmptyMessage(0); } },2000); } //适配器 class mydata extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder vh; if(view==null){ view=View.inflate(MainActivity.this,R.layout.list_item,null); vh=new ViewHolder(view); view.setTag(vh); }else{ vh=(ViewHolder)view.getTag(); } vh.textview.setText(list.get(i)); return view; } class ViewHolder{ private TextView textview; ViewHolder(View view){ textview=(TextView)view.findViewById(R.id.list_item_textview); } } } }