赞
踩
fragment 代码
package com.example.myapplication; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import androidx.fragment.app.Fragment; import com.alibaba.fastjson.JSONObject; import com.example.myapplication.adapter.CellListAdapter; import com.example.myapplication.core.worker.WorkerUtil; import com.example.myapplication.entity.Article; import com.example.myapplication.entity.FirstPageVO; import okhttp3.*; import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.util.LinkedList; /** * A simple {@link Fragment} subclass. * Use the {@link HomeFragment#newInstance} factory method to * create an instance of this fragment. */ public class HomeFragment extends Fragment { public HomeFragment() { // Required empty public constructor } // TODO: Rename and change types and number of parameters public static HomeFragment newInstance(String param1, String param2) { HomeFragment fragment = new HomeFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } LinkedList<Article> data = new LinkedList<>(); ListView listView; private int total = 100; private final int size = 5; private int pages = 10; private int page = 1; CellListAdapter adapter = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View page = inflater.inflate(R.layout.home_fragment, container, false);; // Activity a ctivity = getActivity(); listView = page.findViewById(R.id.listview); // // getActivity().runOnUiThread(()->{ // // }); // Article article = new Article(); // article.setTitle("6666"); // data.add(article); adapter = new CellListAdapter(getActivity(), data); listView.setAdapter(adapter); WorkerUtil.doWork(()->{ getFirstPageData(); }); // Inflate the layout for this fragment return page; } public void getFirstPageData() { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://www.itshare.club/api/blogList?page="+page+"&size="+size) .get().build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(@NotNull Call call, @NotNull IOException e) { } @Override public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { // System.out.println(("res"+ response.body().string() )); FirstPageVO json = JSONObject.parseObject(response.body().string(), FirstPageVO.class); page++; FirstPageVO.Data d = json.getData(); total = d.getTotal(); pages = d.getPages(); data.addAll(d.getContentList()); getActivity().runOnUiThread(() -> { Log.i("request .","success"+page); adapter.setList(data); adapter.notifyDataSetChanged(); }); ; } }); } }
adapter 代码
package com.example.myapplication.adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.myapplication.R; import com.example.myapplication.entity.Article; import java.util.ArrayList; import java.util.List; /** * @Author lyr * @create 2020/10/9 12:44 */ public class CellListAdapter extends BaseAdapter { List<Article> list = new ArrayList<>(); public List<Article> getList() { return list; } public CellListAdapter setList(List<Article> list) { this.list = list; return this; } public LayoutInflater getInflater() { return inflater; } public CellListAdapter setInflater(LayoutInflater inflater) { this.inflater = inflater; return this; } public TextView getTitle() { return title; } public CellListAdapter setTitle(TextView title) { this.title = title; return this; } public ImageView getImageView() { return imageView; } public CellListAdapter setImageView(ImageView imageView) { this.imageView = imageView; return this; } LayoutInflater inflater; public CellListAdapter(Context context, List<Article> list) { this.list = list; inflater = LayoutInflater.from(context); } @Override public int getCount() { if (list == null) { return 0; } return list.size(); } @Override public long getItemId(int i) { return i; } @Override public Object getItem(int i) { if (list == null) { return null; } return list.get(i); } TextView title; ImageView imageView; TextView description; @Override public View getView(int i, View convertView, ViewGroup viewGroup) { // 当view为空时才加载布局,否则,直接修改内容 if (convertView == null) { // 通过inflate的方法加载布局,context需要在使用这个Adapter的Activity中传入。 convertView = inflater.inflate(R.layout.cell_item, null); title = convertView.findViewById(R.id.a_title); imageView = convertView.findViewById(R.id.a_imageView); description = convertView.findViewById(R.id.a_description); // 用setTag方法将处理好的viewHolder放入view中 } Article article = this.list.get(i); // imageView.setImageURI(Uri.parse("http://img.itshare.club/20200915222524.png")); Glide.with(imageView.getContext()) .load(article.getFirstPicture()) .into(imageView); title.setText(article.getTitle()); description.setText(article.getDescription()); // 从viewHolder中取出对应的对象,然后赋值给他们 // viewHolder.title.setText(list.get(i).getTitle()); // 将这个处理好的view返回 return convertView; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。