冲刺第十二天
今天完成的功能:已经完成上拉下拉功能
package com.example.bowenwang;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.scwang.smartrefresh.header.MaterialHeader;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.constant.SpinnerStyle;
import com.scwang.smartrefresh.layout.footer.BallPulseFooter;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class TabFragment extends Fragment {
List<Bean> list=new ArrayList<>();
String classify;
View rootView;
SmartRefreshLayout smartRefreshLayout;
ProgressBar progressBar;
RecyclerView recyclerView;
int page=1,page2=1;
getdata data=new getdata();
RecyclerAdapter2 recyclerAdapter2;
List<Bean> listfre=new ArrayList<>();
private OkHttpClient okHttpClient=new OkHttpClient.Builder()
.connectTimeout(60 * 1000, TimeUnit.MILLISECONDS)
.readTimeout(5 * 60 * 1000, TimeUnit.MILLISECONDS)
.writeTimeout(5 * 60 * 1000, TimeUnit.MILLISECONDS)
.build();
private Handler handler=new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
list= (List<Bean>) msg.obj;
progressBar.setVisibility(View.GONE);
ceshi();
}
};
public static Fragment newInstance() {
TabFragment fragment = new TabFragment();
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle bundle=getArguments();
rootView = inflater.inflate(R.layout.fragment_tag, container, false);
if(bundle!=null){
smartRefreshLayout=rootView.findViewById(R.id.refreshLayout);
progressBar=rootView.findViewById(R.id.progre);
recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler);
progressBar.setVisibility(View.VISIBLE);
smartRefreshLayout.setRefreshHeader(new MaterialHeader(inflater.getContext()).setShowBezierWave(true));
smartRefreshLayout.setRefreshFooter(new BallPulseFooter(inflater.getContext()).setSpinnerStyle(SpinnerStyle.Scale));
smartRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(RefreshLayout refreshLayout) {
refreshXiaLa("xiala");
smartRefreshLayout.finishRefresh(2000);
}
});
smartRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(RefreshLayout refreshLayout) {
Toast.makeText(inflater.getContext(),"正在加载",Toast.LENGTH_SHORT).show();
refreshXiaLa("more");
smartRefreshLayout.finishLoadMore(2000);
}
});
classify=bundle.getString("shuju");
// list=data.get(classify);
// ceshi();
get();
}
return rootView;
}
private void refreshXiaLa(String remore){
if(remore.equals("xiala")){
if(list.size()-15*page>=0){
if(list.size()-15*page>=15){
listfre=new ArrayList<>();
for(int i=15*page;i<15*page+15;i++){
listfre.add(list.get(i));
}
}
else{
for(int i=15*page;i<list.size();i++){
listfre.add(list.get(i));
}
}
recyclerAdapter2=new RecyclerAdapter2(listfre);
recyclerAdapter2.notifyDataSetChanged();
recyclerView.setAdapter(recyclerAdapter2);
Toast.makeText(rootView.getContext(),"刷新完成",Toast.LENGTH_SHORT).show();
page++;
}
else {
Toast.makeText(rootView.getContext(),"已无更多刷新内容",Toast.LENGTH_SHORT).show();
}
}
else if(remore.equals("more")){
if(page-page2==1){
page2++;
}
if(list.size()-15*page2>=0){
if(list.size()-15*page>=15){
for(int i=15*page;i<15*page+15;i++){
listfre.add(list.get(i));
}
}
else{
for(int i=15*page;i<list.size();i++){
listfre.add(list.get(i));
}
}
recyclerAdapter2=new RecyclerAdapter2(listfre);
recyclerAdapter2.notifyDataSetChanged();
recyclerView.setAdapter(recyclerAdapter2);
page2++;
}
else{
Toast.makeText(rootView.getContext(),"已经到底了",Toast.LENGTH_SHORT).show();
}
}
}
private void get(){
new Thread(){
@Override
public void run() {
super.run();
String url="http://39.103.196.146:8888/getNewsData/GetNewsDataServlet";
try {
String result=getData(url);
manageResponse(result);
Log.e("内容:",result);
Message msg=Message.obtain();
msg.obj=list;
handler.sendMessage(msg);
} catch (IOException | JSONException e) {
e.printStackTrace();
}
}
}.start();
}
private String getData(String url) throws IOException {
RequestBody responseBody=new FormBody.Builder()
.add("classify", String.valueOf(classify))
.build();
Request request=new Request.Builder().post(responseBody).url(url).build();
Response response=okHttpClient.newCall(request).execute();
return response.body().string();
}
private void manageResponse(String result) throws JSONException {
JSONArray jsonArray=new JSONArray(result);
list=new ArrayList<>();
listfre=new ArrayList<>();
page=1;
page2=1;
for(int i=0;i<jsonArray.length();i++)
{
JSONObject jsonObject=jsonArray.getJSONObject(i);
String title=jsonObject.getString("title");
String time=jsonObject.getString("time");
String place=jsonObject.getString("place");
String content=jsonObject.getString("content");
String img=jsonObject.getString("img");
Bean bean=new Bean();
bean.setTitle(title);
bean.setTime(time);
bean.setPlace(place);
bean.setContent(content);
bean.setImg(img);
list.add(bean);
}
}
private void ceshi(){
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
if(list.size()>=15){
for(int i=0;i<15;i++){
listfre.add(list.get(i));
}
}
else{
for(int i=0;i<list.size();i++){
listfre.add(list.get(i));
}
}
recyclerAdapter2=new RecyclerAdapter2(listfre);
recyclerView.setAdapter(recyclerAdapter2);
}
}



浙公网安备 33010602011771号