xlistview
来源:互联网 发布:php unpack 二进制 编辑:程序博客网 时间:2024/05/18 01:34
package com.example.myxlistviewdemo;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.google.gson.Gson;
import com.limxing.xlistview.view.XListView;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
private static final String TAG = "MainActivity";
private XListView xLV;
private int index = 1;
private MyBaseAdapter adapter;
//定义个标识值 默认是false
private boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
xLV = (XListView) findViewById(R.id.xLv);
xLV.setPullLoadEnable(true);
xLV.setXListViewListener(this);
//设置适配器
//xLV.setAdapter(new MyBaseAdapter());
getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");
}
private void getData(String path,String pn,String rn){
new AsyncTask<String,Void,String>(){
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(s == null)
return;
//解析
Gson gson = new Gson();
MenuInfo menuInfo = gson.fromJson(s,MenuInfo.class);
List<MenuInfo.ResultBean.DataBean> data = menuInfo.getResult().getData();
if(adapter == null){
adapter = new MyBaseAdapter(data);
xLV.setAdapter(adapter);
}else{
adapter.loadMore(data,flag);
adapter.notifyDataSetChanged();
}
}
@Override
protected String doInBackground(String... params) {
try {
//请求接口地址
String path = params[0];
//取出的是索引页 默认 1 开始
String pn = params[1];
//指定一次给我返回多少条数据
String rn = params[2];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
//post请求
OutputStream os = connection.getOutputStream();
os.write(("key=ff00d7339861c7fd7d5b54b16b76422a&menu="+
URLEncoder.encode("秘制红烧肉","utf-8")+"&pn="+pn+"&rn="+rn).getBytes());
os.flush();
int code = connection.getResponseCode();
if(code == 200){
InputStream is = connection.getInputStream();
return StreamTools.readFromNetWork(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path,pn,rn);
}
//当下拉刷新的时候,会执行
@Override
public void onRefresh() {
Log.e(TAG, "onRefresh: 刷新" );
++index;
getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");
flag = true;
//刷新成功之后,将下拉刷新进度回弹
xLV.stopRefresh(true);
}
//当上拉加载更多的是后,会被执行
@Override
public void onLoadMore() {
Log.e(TAG, "onLoadMore: 加载更多");
++index; //1,2,3
getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");
flag = false;
//停止加载更多
xLV.stopLoadMore();
}
class MyBaseAdapter extends BaseAdapter{
private List<MenuInfo.ResultBean.DataBean> data;
public MyBaseAdapter( List<MenuInfo.ResultBean.DataBean> data){
this.data = data;
}
/**
* 加载更多
*/
public void loadMore(List<MenuInfo.ResultBean.DataBean> datas,boolean flag){
//新闻为例,数据要添加到最前面
for (MenuInfo.ResultBean.DataBean bean : datas) {
//flag -> true 添加到卡面 false ->添加到末尾
if(flag) {
//将数据添加到最前面
data.add(0, bean);
}else{
//默认将数据添加到末尾
data.add(bean);
}
}
}
@Override
public int getCount() {
return data != null ? data.size() : 0;
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(MainActivity.this);
textView.setHeight(100);
textView.setText(data.get(position).getTags());
return textView;
}
}
}
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.google.gson.Gson;
import com.limxing.xlistview.view.XListView;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {
private static final String TAG = "MainActivity";
private XListView xLV;
private int index = 1;
private MyBaseAdapter adapter;
//定义个标识值 默认是false
private boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
xLV = (XListView) findViewById(R.id.xLv);
xLV.setPullLoadEnable(true);
xLV.setXListViewListener(this);
//设置适配器
//xLV.setAdapter(new MyBaseAdapter());
getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");
}
private void getData(String path,String pn,String rn){
new AsyncTask<String,Void,String>(){
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if(s == null)
return;
//解析
Gson gson = new Gson();
MenuInfo menuInfo = gson.fromJson(s,MenuInfo.class);
List<MenuInfo.ResultBean.DataBean> data = menuInfo.getResult().getData();
if(adapter == null){
adapter = new MyBaseAdapter(data);
xLV.setAdapter(adapter);
}else{
adapter.loadMore(data,flag);
adapter.notifyDataSetChanged();
}
}
@Override
protected String doInBackground(String... params) {
try {
//请求接口地址
String path = params[0];
//取出的是索引页 默认 1 开始
String pn = params[1];
//指定一次给我返回多少条数据
String rn = params[2];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
//post请求
OutputStream os = connection.getOutputStream();
os.write(("key=ff00d7339861c7fd7d5b54b16b76422a&menu="+
URLEncoder.encode("秘制红烧肉","utf-8")+"&pn="+pn+"&rn="+rn).getBytes());
os.flush();
int code = connection.getResponseCode();
if(code == 200){
InputStream is = connection.getInputStream();
return StreamTools.readFromNetWork(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path,pn,rn);
}
//当下拉刷新的时候,会执行
@Override
public void onRefresh() {
Log.e(TAG, "onRefresh: 刷新" );
++index;
getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");
flag = true;
//刷新成功之后,将下拉刷新进度回弹
xLV.stopRefresh(true);
}
//当上拉加载更多的是后,会被执行
@Override
public void onLoadMore() {
Log.e(TAG, "onLoadMore: 加载更多");
++index; //1,2,3
getData("http://apis.juhe.cn/cook/query.php",index+"",10+"");
flag = false;
//停止加载更多
xLV.stopLoadMore();
}
class MyBaseAdapter extends BaseAdapter{
private List<MenuInfo.ResultBean.DataBean> data;
public MyBaseAdapter( List<MenuInfo.ResultBean.DataBean> data){
this.data = data;
}
/**
* 加载更多
*/
public void loadMore(List<MenuInfo.ResultBean.DataBean> datas,boolean flag){
//新闻为例,数据要添加到最前面
for (MenuInfo.ResultBean.DataBean bean : datas) {
//flag -> true 添加到卡面 false ->添加到末尾
if(flag) {
//将数据添加到最前面
data.add(0, bean);
}else{
//默认将数据添加到末尾
data.add(bean);
}
}
}
@Override
public int getCount() {
return data != null ? data.size() : 0;
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(MainActivity.this);
textView.setHeight(100);
textView.setText(data.get(position).getTags());
return textView;
}
}
}
阅读全文
2 0
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- XListView
- xlistview
- xListview
- XListView
- XListView
- xlistview
- xlistview
- require js(一)
- Django笔记
- 机器学习
- LAMP架构学习(2) PHP的配置与使用
- 控制手机震动demo【引】
- xlistview
- Linux下修改Mysql的用户(root)的密码
- EasyUI 之 DataGrid分页组件中文显示的两种方法(语言的切换)
- leetcode 136. Single Number | XOR的巧妙运用
- Java中策略模式介绍
- 字符串匹配算法
- java ssm学习日常小问题
- java并行程序基础
- CodeForces