自己使用XListView
来源:互联网 发布:算法谜题 pdf 下载 编辑:程序博客网 时间:2024/06/10 16:02
import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.google.gson.Gson;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{ private static final String jsonUrl ="http://www.gank.io/api/data/Android/10/1"; private List<News> list; private XListView xListView; private Myadapter myadapter; List<News.ResultsBean> results; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取资源ID xListView = (XListView)findViewById(R.id.xlv); xListView.setPullLoadEnable(true);//设置可以刷新和加载 xListView.setXListViewListener(this); //刚进来,加载第一版数据 new AsyncTask<String,Integer,String>() { @Override protected String doInBackground(String... params) { //线程加载数据 String str = new NetWorkUtils().getJsonByUrlConnection(jsonUrl); return str; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); News news = gson.fromJson(s, News.class); results = news.getResults(); myadapter = new Myadapter(MainActivity.this,results); xListView.setAdapter(myadapter); } }.execute(); } public void onLoad(){ xListView.stopRefresh(); xListView.stopLoadMore(); //获取当前时间 Date curDate = new Date(System.currentTimeMillis()); //格式化 SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); String time = formatter.format(curDate); xListView.setRefreshTime(time); } //下拉调用此方法 @Override public void onRefresh() { new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... params) { //线程加载数据 String str = new NetWorkUtils().getJsonByUrlConnection(jsonUrl); return str; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); News news= new Gson().fromJson(s,News.class); results = news.getResults();//得到第一页数据 myadapter = new Myadapter( MainActivity.this,results); xListView.setAdapter(myadapter); onLoad(); } }.execute(); } @Override public void onLoadMore() { new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... params) { //线程加载数据 String str = new NetWorkUtils().getJsonByUrlConnection(jsonUrl); return str; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); News news = new Gson().fromJson(s,News.class); List<News.ResultsBean> newData = news.getResults();//得到下一条数据 results.addAll(newData); //把新的一页的数据集合,加到总的数据集合 myadapter.notifyDataSetChanged(); //刷新适配器,展示全部数据 onLoad(); } }.execute(); }}
import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.List;public class Myadapter extends BaseAdapter { private Context context; private List<News.ResultsBean> list; public Myadapter(Context context, List<News.ResultsBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public int getViewTypeCount() { return 1; } @Override public int getItemViewType(int position) { return 1; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; if(view== null ){ holder= new ViewHolder(); view = View.inflate(context, R.layout.item, null); holder.textView = (TextView) view.findViewById(R.id.ltv); view.setTag(holder); }else { holder =(ViewHolder) view.getTag(); } holder.textView.setText(list.get(i).getDesc()); return view; } class ViewHolder{ TextView textView; }}
阅读全文
1 0
- 自己使用XListView
- XListView使用
- XListView使用
- Xlistview 使用
- XListView使用
- android XListView使用详解
- xlistview的使用
- XListView 使用笔记
- xListView的使用步骤
- xListView+OKHttp使用(一)
- XLIstView的使用
- XlistView的使用
- XListView的使用
- xListView+OKHttp使用(二)
- xlistview的使用
- xListView的使用
- xListView的简单使用
- XListView简单使用
- 【IOS笔记】分页功能
- 理解边缘检测,从0基础开始,数学知识是重点
- 02:陶陶摘苹果
- Makefile----wildcard用法
- Spring boot security问题
- 自己使用XListView
- Android APK编译打包过程
- 实现给定一个字符串剔除重复字符,并统计各个字符出现的次数
- 比赛
- quartz学习笔记-core
- 网络编程_TCP协议
- springboot日志篇
- LeetCode:M-2. Add Two Numbers
- 第二周项目 2—C/C++语言中函数参数传递的三种方式