package com.example.lianxtapplication.fragment;
/**
* A simple {@link Fragment} subclass.
*/
public class ListViewFragment extends Fragment implements View.OnClickListener, AbsListView.OnScrollListener {
private ListView lv;
private int mPageIndex = 1;
private int i3;
private Button ba;
private ProgressBar pr;
private SwipeRefreshLayout Swip;
private View footView1;
private ListViewAdapter2 listViewAdapter2;
private List<ListUser.ParamzBean.FeedsBean> list = new ArrayList<>();
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String st = (String) msg.obj;
Log.e("---", st);
Gson gson = new Gson();
ListUser listUser = gson.fromJson(st, ListUser.class);
list.addAll(listUser.getParamz().getFeeds());
//适配器刷新
listViewAdapter2.notifyDataSetChanged();
Swip.setRefreshing(false);
}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_list_view, container, false);
initView(inflate);
initData();
initFootView();
initAdapter();
//下拉刷新
Swip.setProgressBackgroundColorSchemeResource(android.R.color.white);
// 设置下拉进度的主题颜色
Swip.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);
Swip.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
list.clear();
mPageIndex = 1;
initData();
}
});
return inflate;
}
private void initAdapter() {
listViewAdapter2 = new ListViewAdapter2(list, getActivity());
lv.addFooterView(footView1);
lv.setAdapter(listViewAdapter2);
}
//初始化底部试图
private void initFootView() {
//在主页面里用 //footView1 = getLayoutInflater().inflate(R.layout.item, null);
//获取地部控件 因为在fragment里面所以要加 getActivity()
footView1 = getActivity().getLayoutInflater().inflate(R.layout.item, null);
//获取按钮id
ba = footView1.findViewById(R.id.basicaa);
//获取进度条的id
pr = footView1.findViewById(R.id.pr);
//按钮的点击事件
ba.setOnClickListener(this);
}
private void initData() {
new Thread(new Runnable() {
@Override
public void run() {
try {
String sendGet = MyOkHttp.getMyOkHttp().sendGet("http://litchiapi.jstv.com/api/GetFeeds?column=3&PageSize=10&pageIndex=" + mPageIndex + "&val=100511D3BE5301280E0992C73A9DEC41");
Message message = new Message();
message.obj = sendGet;
handler.sendMessage(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
private void initView(View inflate) {
Swip = (SwipeRefreshLayout) inflate.findViewById(R.id.Swip);
lv = (ListView) inflate.findViewById(R.id.lv);
lv.setOnScrollListener(this);
}
//点击监听
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.basicaa:
//点击完显示加载进度条
pr.setVisibility(View.VISIBLE);
//将按钮隐藏
ba.setVisibility(View.GONE);
//变量增加
mPageIndex++;
//添加新数据
initData();
break;
}
}
//滑动状态监听 @Override
public void onScrollStateChanged(AbsListView absListView, int i) {
int count = listViewAdapter2.getCount();
if (i == 0 && count == i3) {
//滑动底部显示按钮
ba.setVisibility(View.VISIBLE);
//将加载进度条隐藏
pr.setVisibility(View.GONE);
}
}
//滑动时走的方法
@Override
public void onScroll(AbsListView absListView, int i, int i1, int i2) {
i3 = i2 - 1;
}
}
//ListView分页加载的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.lianxtapplication.fragment.ListViewFragment"
android:orientation="vertical"
>
<!-- TODO: Update blank fragment layout -->
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/Swip"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
//Button 按钮 ,ProgressBar 加载进度
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/basicaa"
android:text="点击加载"
/>
<ProgressBar
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:id="@+id/pr"
/>
</LinearLayout>