Xlistview上拉加载,下拉刷新、多条目展示以及获取系统时间
来源:互联网 发布:接口平台 java 编辑:程序博客网 时间:2024/06/07 17:00
- 首先导入依赖:gson、imageLoader
compile ‘com.google.code.gson:gson:2.2.4’ compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
- 在布局文件中:
<com.bwie.xlistviewlibrary.View.XListView android:id="@+id/xlv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="3" />
子布局。。。。。。。。
然后在activity中处理一些数据。。。。
/**
- Oncreat()方法中的操作
*/
- Oncreat()方法中的操作
private int type = 1;private int pages = 1; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlv = (XListView) findViewById(R.id.xlv); //加载更多 xlv.setPullLoadEnable(true); //下拉刷新 xlv.setPullRefreshEnable(true); //给xlistview设置监听事件 xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { type = 1; pages = 1; new MyTask().execute(path); } @Override public void onLoadMore() { type = 2; pages++; new MyTask().execute("http://api.tianapi.com/mobile/?key=d28c274e60a1a76155e97dc199dbfacc&num=10&page="+pages); } }); new MyTask().execute(path); }
自定义一个MyTask类
class MyTask extends AsyncTask<String,String,String> { private List<Bean.NewslistBean> newslist; @Override protected String doInBackground(String... strings) { String path = strings[0]; try { /* 得到当前需要的path */ URL url = new URL(path); /** * 得到网络请求 */ HttpURLConnection connection = (HttpURLConnection) url.openConnection(); /** * 设置延时时间 */ connection.setConnectTimeout(3000); //得到请求方式 connection.setRequestMethod("GET"); //得到请求码 int responseCode = connection.getResponseCode(); /* 判断是否请求成功 */ if (responseCode == 200) { int len; byte[] b = new byte[1024 * 20]; InputStream inputStream = connection.getInputStream(); outputStream = new ByteArrayOutputStream(); while ((len = inputStream.read(b)) != -1) { outputStream.write(b,0,len); } } return outputStream.toString();//返回数据信息 } catch (Exception e) { e.printStackTrace(); } return null;//返回空 } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); /** * 转换json串 */ Bean json = gson.fromJson(s, Bean.class); newslist = json.getNewslist(); if(type==1){ list.clear(); list.addAll(newslist); MyAdapter adapter1 = new MyAdapter(MainActivity.this,newslist); xlv.setAdapter(adapter1); new Handler().postDelayed(new Runnable() { @Override public void run() { Date date = new Date(System.currentTimeMillis()); SimpleDateFormat format = new SimpleDateFormat("yyyy_MM_dd HH:mm:ss"); String s = format.format(date); xlv.setRefreshTime(s); xlv.stopRefresh(); } },1000); }else if(type==2){ list.addAll(newslist); MyAdapter adapter1 = new MyAdapter(MainActivity.this,newslist); xlv.setAdapter(adapter1); new Handler().postDelayed(new Runnable() { @Override public void run() { xlv.stopLoadMore(); } },1000); } } }
自定义一个Adapter进行展示数据
public class MyAdapter extends BaseAdapter { Context context; List<Bean.NewslistBean> list; public MyAdapter(Context context,List<Bean.NewslistBean> list){ this.context = context; this.list=list; } @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; }/*** 优化,展示数据 * 无viewHolder 详情看博客的详细细节*/ @Override public View getView(int i, View view, ViewGroup viewGroup) { if(i%2==0){ if(view==null){ view = View.inflate(context, R.layout.main_item,null); } ImageView iv = view.findViewById(R.id.iv); TextView tv = view.findViewById(R.id.tv); String s = list.get(i).getPicUrl(); ImageLoader.getInstance().displayImage(s,iv); tv.setText(list.get(i).getTitle()); return view; }else{ if(view==null){ view = View.inflate(context, R.layout.main_item1,null); } ImageView iv1 = view.findViewById(R.id.iv1); TextView tv1 = view.findViewById(R.id.tv1); String s1 = list.get(i).getPicUrl(); ImageLoader.getInstance().displayImage(s1,iv1); tv1.setText(list.get(i).getTitle()); return view; } }}
阅读全文
0 0
- Xlistview上拉加载,下拉刷新、多条目展示以及获取系统时间
- LIstView多条目展示+XListView下拉刷新,上拉加载
- 下拉刷新上拉加载,XListView多条目加载,TabPageIndicator
- XListView多条目加载+TabPageIndicator+下拉刷新上拉加载
- XListView下拉刷新,上拉加载和ListView多条目加载
- XlistView上拉刷新下拉加载
- xListView上拉刷新下拉加载
- xListView上拉加载下拉刷新
- XListView上拉加载,下拉刷新
- xlistview上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉刷新,下拉加载
- 上拉刷新--下拉加载XListView
- XListView上拉加载下拉刷新
- xlistview上拉刷新、下拉加载
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- XListView上拉加载下拉刷新
- jquery获取td的内容
- ARM汇编编程的建议规则 AAPCS
- 机器学习之支持向量机SVM Support Vector Machine (四) SMO算法
- Oracle 如何修改表中字段顺序?
- cocos2dx安卓编译出错
- Xlistview上拉加载,下拉刷新、多条目展示以及获取系统时间
- angular js 查询 按钮排序 状态查询
- 监控系统之深度解析
- 购物车到订单的MVP方法
- rgba和opacity的区别及应用
- cocos2d-x ScrollView的滑动区调整
- 用我们最好的博客方式培养读者
- 查找算法-顺序查找(顺序表的普通实现和优化实现)
- 获取字符串中每一个字母出现的次数