public class Fra2 extends Fragment {
private ListView lv;
String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/0";
private List<JsonBean.DataBean> data=new ArrayList<>();
private MyAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fra2, null);
lv = view.findViewById(R.id.lv);
new MAsyncTask().execute(url);
adapter = new MyAdapter();
lv.setAdapter(adapter);
return view;
}
private class MAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
String json = UntilGj.getJson(strings[0]);
return json;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson=new Gson();
JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
data.addAll(jsonBean.getData());
adapter.notifyDataSetChanged();
}
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if (position%2==0){
return 0;
}else {
return 1;
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHorder1 horder1 = null;
ViewHorder2 horder2 = null;
int i = getItemViewType(position);
switch (i) {
case 0:
if (convertView == null) {
convertView = View.inflate(getActivity(), R.layout.list1, null);
horder1 = new ViewHorder1();
horder1.iv = convertView.findViewById(R.id.iv);
convertView.setTag(horder1);
} else {
horder1 = (ViewHorder1) convertView.getTag();
}
Glide.with(getActivity()).load(data.get(position).getPic_url()).into(horder1.iv);
break;
case 1:
if (convertView == null) {
convertView = View.inflate(getActivity(), R.layout.list2, null);
horder2 = new ViewHorder2();
horder2.text = convertView.findViewById(R.id.text);
convertView.setTag(horder2);
}
else
{
horder2= (ViewHorder2) convertView.getTag();
}
horder2.text.setText(data.get(position).getNews_title());
break;
}
return convertView;
}
}
class ViewHorder1{
ImageView iv;
}
class ViewHorder2{
TextView text;
}
}