android第三方框架 xlistview 的使用
来源:互联网 发布:白俄罗斯军力知乎 编辑:程序博客网 时间:2024/05/20 10:22
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" android:background="#f0f0f0">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<com.example.guwie.yaoren.ui.view.XListView
android:id="@+id/xListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000">
</com.example.guwie.yaoren.ui.view.XListView>
</LinearLayout>
为布局文件写对应的java文件
public class TaskList extends AppCompatActivity implements XListView.IXListViewListener {
//创建xlistview对象
private XListView mListView;
//创建数据
List<ItemBean> dataList = new ArrayList<>();
private Object item;
int page = 1;
int maxpage = 0;
//用来执行耗时操作
private Handler mHandler;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tasklist);
//指定布局中的xlistview控件
mListView = (XListView) findViewById(R.id.xListView);
mListView.setPullLoadEnable(true);
mListView.setPullRefreshEnable(true);
getTaskList(page);
mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
mListView.setXListViewListener(this);
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0x001:
Toast.makeText(TaskList.this , "已无更多数据" , Toast.LENGTH_SHORT).show();
break;
case 0x002:
Toast.makeText(TaskList.this , "未找到数据" , Toast.LENGTH_SHORT).show();
break;
}
}
};
}
//获得数据后要执行onLoad()方法,否则刷新会一直进行停不下来
private void onLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
mListView.setRefreshTime("刚刚");
}
@Override
public void onRefresh() {
dataList.clear();
page = 1;
mHandler.post(new Runnable() {//执行耗时操作
@Override
public void run() {
getTaskList(page);
mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
}
});
onLoad();
Log.i("------------------", "onRefresh");
}
@Override
public void onLoadMore() {
mHandler.post(new Runnable() {
@Override
public void run() {
if(page < maxpage){
getTaskList(++page);
mListView.deferNotifyDataSetChanged();
}else{
Message msg = new Message();
msg.what=0x001;
mHandler.sendMessage(msg);
}
// getTaskList(++page);
// mListView.deferNotifyDataSetChanged();
//mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
}
});
onLoad();
Log.i("------------------", "onLoadMore");
}
/***
* 获取list数据 volley 方法 post string数据 得到 json数据 服务端由php编写
*
* */
public void getTaskList(int pages) {
Toast.makeText(TaskList.this , pages+"" , Toast.LENGTH_SHORT).show();
RequestQueue mreuestQueut = Volley.newRequestQueue(this);
final Gson gson = new Gson();
JsonObjectRequest jsreq = new JsonObjectRequest(Request.Method.GET, TASK_LIST_DATE+"page="+pages, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
Message msg = new Message();
try {
int code = jsonObject.getInt("code");
if(code == 200){
int size = jsonObject.getJSONArray("data").length();
for(int i=0; i<size ; i++){
JSONObject dataObject = jsonObject.getJSONArray("data").getJSONObject(i);
String title = dataObject.getString("title");
String price = dataObject.getString("fee");
String explain = dataObject.getString("description");
dataList.add(new ItemBean(title , explain , price , "3km"));
}
maxpage = ++page;
page = page-1;
}else if(code == 205){
//已无更多数据
//maxpage = page;
page = maxpage;
msg.what=0x001;
mHandler.sendMessage(msg);
}else if(code == 404){
//未找到数据
msg.what = 0x002;
mHandler.sendMessage(msg);
}
} catch (JSONException e) {
e.printStackTrace();
Log.i("----------------", "客户端内部错误");
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.i("----------------","服务器出错"+volleyError.toString());
}
});
mreuestQueut.add(jsreq);
}
}
这里的MyAdapter的方法是自定义的,详情请参考慕课网的徐大神的《Android必学-BaseAdapter的使用与优化》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" android:background="#f0f0f0">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<com.example.guwie.yaoren.ui.view.XListView
android:id="@+id/xListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000">
</com.example.guwie.yaoren.ui.view.XListView>
</LinearLayout>
为布局文件写对应的java文件
public class TaskList extends AppCompatActivity implements XListView.IXListViewListener {
//创建xlistview对象
private XListView mListView;
//创建数据
List<ItemBean> dataList = new ArrayList<>();
private Object item;
int page = 1;
int maxpage = 0;
//用来执行耗时操作
private Handler mHandler;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tasklist);
//指定布局中的xlistview控件
mListView = (XListView) findViewById(R.id.xListView);
mListView.setPullLoadEnable(true);
mListView.setPullRefreshEnable(true);
getTaskList(page);
mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
mListView.setXListViewListener(this);
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0x001:
Toast.makeText(TaskList.this , "已无更多数据" , Toast.LENGTH_SHORT).show();
break;
case 0x002:
Toast.makeText(TaskList.this , "未找到数据" , Toast.LENGTH_SHORT).show();
break;
}
}
};
}
//获得数据后要执行onLoad()方法,否则刷新会一直进行停不下来
private void onLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
mListView.setRefreshTime("刚刚");
}
@Override
public void onRefresh() {
dataList.clear();
page = 1;
mHandler.post(new Runnable() {//执行耗时操作
@Override
public void run() {
getTaskList(page);
mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
}
});
onLoad();
Log.i("------------------", "onRefresh");
}
@Override
public void onLoadMore() {
mHandler.post(new Runnable() {
@Override
public void run() {
if(page < maxpage){
getTaskList(++page);
mListView.deferNotifyDataSetChanged();
}else{
Message msg = new Message();
msg.what=0x001;
mHandler.sendMessage(msg);
}
// getTaskList(++page);
// mListView.deferNotifyDataSetChanged();
//mListView.setAdapter(new MyAdapter(TaskList.this, dataList));
}
});
onLoad();
Log.i("------------------", "onLoadMore");
}
/***
* 获取list数据 volley 方法 post string数据 得到 json数据 服务端由php编写
*
* */
public void getTaskList(int pages) {
Toast.makeText(TaskList.this , pages+"" , Toast.LENGTH_SHORT).show();
RequestQueue mreuestQueut = Volley.newRequestQueue(this);
final Gson gson = new Gson();
JsonObjectRequest jsreq = new JsonObjectRequest(Request.Method.GET, TASK_LIST_DATE+"page="+pages, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
Message msg = new Message();
try {
int code = jsonObject.getInt("code");
if(code == 200){
int size = jsonObject.getJSONArray("data").length();
for(int i=0; i<size ; i++){
JSONObject dataObject = jsonObject.getJSONArray("data").getJSONObject(i);
String title = dataObject.getString("title");
String price = dataObject.getString("fee");
String explain = dataObject.getString("description");
dataList.add(new ItemBean(title , explain , price , "3km"));
}
maxpage = ++page;
page = page-1;
}else if(code == 205){
//已无更多数据
//maxpage = page;
page = maxpage;
msg.what=0x001;
mHandler.sendMessage(msg);
}else if(code == 404){
//未找到数据
msg.what = 0x002;
mHandler.sendMessage(msg);
}
} catch (JSONException e) {
e.printStackTrace();
Log.i("----------------", "客户端内部错误");
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.i("----------------","服务器出错"+volleyError.toString());
}
});
mreuestQueut.add(jsreq);
}
}
这里的MyAdapter的方法是自定义的,详情请参考慕课网的徐大神的《Android必学-BaseAdapter的使用与优化》
阅读全文
0 0
- android第三方框架 xlistview 的使用
- Android第三方框架之xListView的使用方法
- Android第三方框架之xListView的使用方法
- android 第三方框架的使用
- XListview第三方listview布局框架
- XlistView下拉刷新第三方使用模版
- 第三方框架的使用
- XListView框架的使用
- Android开发使用的常见第三方框架
- Android开发使用的常见第三方框架汇总
- Android开发使用的常见第三方框架汇总
- Android第三方框架的设置、导入、使用
- Android开发使用的常见第三方框架汇总
- Android开发使用的常见第三方框架汇总
- Android开发使用的常见第三方框架汇总
- Android开发使用的常见第三方框架汇总
- Android开发使用的常见第三方框架汇总
- Android开发使用的常见第三方框架汇总
- python爬虫练习5:博客阅读量助手
- 初识hibernate
- Ubuntu Windows双系统引导的问题
- js之script属性async与defer
- 一个程序员该有的自我修养
- android第三方框架 xlistview 的使用
- Java之线程安全的单例设计模式
- 整理了部分数据分析用图表
- [BZOJ]1601 灌水 最小生成树
- python 字符串和编码
- poj2553 求汇点
- Mybatis 使用count
- Andrew NG 机器学习 练习4-Neural Networks Learning
- java图片色阶调整、亮度调整