import android.os.Build; import android.os.Handler; import android.support.annotation.RequiresApi; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import me.maxwin.view.XListView; import static android.R.attr.start; public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private XListView xListView; private ArrayAdapter<String> arrayAdapter; private Handler handler; private List<String> arrayList = new ArrayList<>(); private int start; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler(); arrayAddList();// 添加数据 xListView = (XListView) findViewById(R.id.xv);//获取XListView控件 xListView.setPullLoadEnable(true);//上拉刷新 // xListView.setPullRefreshEnable(true);//下拉刷新(可以不设) arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);//列表适配器 xListView.setAdapter(arrayAdapter);//指定adapter xListView.setXListViewListener(this);//给xListView设置监听 // 获得数据后一定要调用onLoad()方法,否则刷新会一直进行,根本停不下来 } private void arrayAddList() { for (int i = 0; i < 50; i++) { arrayList.add("item" + i); } } @RequiresApi(api = Build.VERSION_CODES.N) private void onLoad() { xListView.stopRefresh();//停止刷新 xListView.stopLoadMore();//停止加载更多 SimpleDateFormat formatter = new SimpleDateFormat("mm:ss");//设置日期显示格式 Date curDate = new Date(System.currentTimeMillis());//获取当前时间 String str = formatter.format(curDate);// 将时间装换为设置好的格式 xListView.setRefreshTime(str);//设置时间 } // 刷新 @Override public void onRefresh() { handler.postDelayed(new Runnable() { @RequiresApi(api = Build.VERSION_CODES.N) @Override public void run() { arrayAddList(); // 如果适配器的内容改变时需要强制调用getView来刷新每个Item arrayAdapter.notifyDataSetInvalidated(); onLoad();// 必须调用此方法,结束加载状态 } }, 2000); } // 加载更多 @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @RequiresApi(api = Build.VERSION_CODES.N) @Override public void run() { arrayAddList(); // 如果适配器的内容改变时需要强制调用getView来刷新每个Item arrayAdapter.notifyDataSetChanged(); onLoad();// 必须调用此方法,结束加载状态 } }, 2000); } }
XlistView上下加载的使用方法
最新推荐文章于 2019-01-03 14:28:08 发布