ListView动态加载
来源:互联网 发布:外贸邮箱软件 编辑:程序博客网 时间:2024/06/05 02:24
package app.jiyun.com.android_day03_listview_jiazai;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ProgressBar;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import app.jiyun.com.android_day03_listview_jiazai.adapter.MyAdapter;
import app.jiyun.com.android_day03_listview_jiazai.bean.MyData;
import app.jiyun.com.android_day03_listview_jiazai.until.MyOkHttp;
/**
* Created by lvxinxin on 2017/12/20.
* ListView和RecyclerView动态加载 预先把适配啥的都实例化好 当我数据源发生改变的时候刷新适配器就行
* 三要素?
* 1:本身这个组件
* 2:数据源
* 3:适配器
* 下拉刷新用一个组件
*/
public class ListViewDongtaiActivity extends AppCompatActivity implements View.OnClickListener, AbsListView.OnScrollListener {
private ListView mListView;
private int mPageIndex = 1;
private MyAdapter myAdapter;
private List<MyData.ParamzBean.FeedsBean> mList = new ArrayList<>();
private View mFootView;
private Button mLoadMore;
private ProgressBar mPro;
private int mLastIndex;
private SwipeRefreshLayout mSwipe;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
String jsonStr = (String) msg.obj;
Gson gson = new Gson();
//反射???
MyData myData = gson.fromJson(jsonStr, MyData.class);
//给集合赋值
// mList = myData.getParamz().getFeeds();
// Log.e("sfds",mList.toString());
mList.addAll(myData.getParamz().getFeeds());
myAdapter.notifyDataSetChanged();
mSwipe.setRefreshing(false);
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFootView();
initView();
getInfo();
mSwipe.setProgressBackgroundColorSchemeResource(android.R.color.white);
// 设置下拉进度的主题颜色
mSwipe.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);
mSwipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mList.clear();
mPageIndex = 1;
getInfo();
}
});
}
private void initView() {
mSwipe = (SwipeRefreshLayout) findViewById(R.id.SwipeRefresh);
mListView = (ListView) findViewById(R.id.lv);
mListView.addFooterView(mFootView);
mListView.setOnScrollListener(this);
myAdapter = new MyAdapter(mList, this);
mListView.setAdapter(myAdapter);
}
//初始化底部视图
private void initFootView() {
mFootView = getLayoutInflater().inflate(R.layout.layout, null);
mLoadMore = (Button) mFootView.findViewById(R.id.Load_More_Btn);
mPro = (ProgressBar) mFootView.findViewById(R.id.progressBar2);
mLoadMore.setOnClickListener(this);
}
private void getInfo() {
new Thread(new Runnable() {
@Override
public void run() {
try {
String s = MyOkHttp.getMyOkHttp().sendGet("http://litchiapi.jstv.com/api/GetFeeds?column=3&PageSize=10&pageIndex=" + mPageIndex + "&val=100511D3BE5301280E0992C73A9DEC41");
Message msg = new Message();
msg.obj = s;
mHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Load_More_Btn:
mPro.setVisibility(View.VISIBLE);
mLoadMore.setVisibility(View.GONE);
mPageIndex++;
getInfo();
break;
}
}
//滑动状态监听
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.e("mLastIndex", mLastIndex + "条");
Log.e("myAdapter", myAdapter.getCount() + "条");
if (scrollState == 0 && myAdapter.getCount() == mLastIndex) {
mPro.setVisibility(View.GONE);
mLoadMore.setVisibility(View.VISIBLE);
}
}
//滑动时走的方法
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
mLastIndex = totalItemCount - 1;
}
}
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ProgressBar;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import app.jiyun.com.android_day03_listview_jiazai.adapter.MyAdapter;
import app.jiyun.com.android_day03_listview_jiazai.bean.MyData;
import app.jiyun.com.android_day03_listview_jiazai.until.MyOkHttp;
/**
* Created by lvxinxin on 2017/12/20.
* ListView和RecyclerView动态加载 预先把适配啥的都实例化好 当我数据源发生改变的时候刷新适配器就行
* 三要素?
* 1:本身这个组件
* 2:数据源
* 3:适配器
* 下拉刷新用一个组件
*/
public class ListViewDongtaiActivity extends AppCompatActivity implements View.OnClickListener, AbsListView.OnScrollListener {
private ListView mListView;
private int mPageIndex = 1;
private MyAdapter myAdapter;
private List<MyData.ParamzBean.FeedsBean> mList = new ArrayList<>();
private View mFootView;
private Button mLoadMore;
private ProgressBar mPro;
private int mLastIndex;
private SwipeRefreshLayout mSwipe;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
String jsonStr = (String) msg.obj;
Gson gson = new Gson();
//反射???
MyData myData = gson.fromJson(jsonStr, MyData.class);
//给集合赋值
// mList = myData.getParamz().getFeeds();
// Log.e("sfds",mList.toString());
mList.addAll(myData.getParamz().getFeeds());
myAdapter.notifyDataSetChanged();
mSwipe.setRefreshing(false);
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFootView();
initView();
getInfo();
mSwipe.setProgressBackgroundColorSchemeResource(android.R.color.white);
// 设置下拉进度的主题颜色
mSwipe.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);
mSwipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mList.clear();
mPageIndex = 1;
getInfo();
}
});
}
private void initView() {
mSwipe = (SwipeRefreshLayout) findViewById(R.id.SwipeRefresh);
mListView = (ListView) findViewById(R.id.lv);
mListView.addFooterView(mFootView);
mListView.setOnScrollListener(this);
myAdapter = new MyAdapter(mList, this);
mListView.setAdapter(myAdapter);
}
//初始化底部视图
private void initFootView() {
mFootView = getLayoutInflater().inflate(R.layout.layout, null);
mLoadMore = (Button) mFootView.findViewById(R.id.Load_More_Btn);
mPro = (ProgressBar) mFootView.findViewById(R.id.progressBar2);
mLoadMore.setOnClickListener(this);
}
private void getInfo() {
new Thread(new Runnable() {
@Override
public void run() {
try {
String s = MyOkHttp.getMyOkHttp().sendGet("http://litchiapi.jstv.com/api/GetFeeds?column=3&PageSize=10&pageIndex=" + mPageIndex + "&val=100511D3BE5301280E0992C73A9DEC41");
Message msg = new Message();
msg.obj = s;
mHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Load_More_Btn:
mPro.setVisibility(View.VISIBLE);
mLoadMore.setVisibility(View.GONE);
mPageIndex++;
getInfo();
break;
}
}
//滑动状态监听
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.e("mLastIndex", mLastIndex + "条");
Log.e("myAdapter", myAdapter.getCount() + "条");
if (scrollState == 0 && myAdapter.getCount() == mLastIndex) {
mPro.setVisibility(View.GONE);
mLoadMore.setVisibility(View.VISIBLE);
}
}
//滑动时走的方法
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
mLastIndex = totalItemCount - 1;
}
}
阅读全文
0 0
- 动态加载ListView Templates
- ListView数据动态加载
- Listview动态加载数据
- android 动态加载Listview
- Listview动态加载数据
- ListView动态加载数据
- ListView 动态加载
- android ListView 动态加载
- Listview动态加载数据
- ListView动态加载一项
- listView动态加载实例
- JQM 动态加载listview
- Listview动态加载数据
- Listview动态加载数据
- 动态加载ListView
- ListView动态加载效果
- ListView动态加载addHeaderView
- Listview动态加载数据
- J2EE框架(三)Reflect
- 三十二、面向对象
- 仿今日头条——主页面F1+频道管理
- 【Ionic】Ionic自动计算时间+时间验证(Datatime,readonly,toFixed,parse)
- Flex 布局教程:语法篇
- ListView动态加载
- 论文笔记--Appearance-and-Relation Networks for Video Classification
- Nexus OSS私服仓库的备份与迁移
- ubuntu下 python 好用的IDE
- C++ 虚函数表解析
- IT与风投
- js 面试题总结
- 1小时掌握SVN版本控制系统
- 一文搞懂HMM(隐马尔可夫模型)