SuperBase (主要用于主页GridView的渲染)
public abstract class SuperBase extends BaseAdapter { public SuperBase(int mList) { this.mList = mList; } private int mList; @Override public int getCount() { return mList; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public abstract View getView(int position, View convertView, ViewGroup parent); }
SuperPages (主要用于轮播图)
public abstract class SuperPages extends PagerAdapter { private int mList; private RadioGroup mCircle; private Context context; public SuperPages(int mList, RadioGroup radioGroup, Context context) { this.mList = mList; this.mCircle = radioGroup; this.context = context; setCircle();//设置圆圈标识 } public void setCircle(){ for (int i = 0; i < mList; i++) { RadioButton radioButton = new RadioButton(context); radioButton.setButtonDrawable(R.drawable.circle_select); radioButton.setId(i); mCircle.addView(radioButton); } } @Override public int getCount() { return mList; } @NonNull @Override public abstract Object instantiateItem(@NonNull ViewGroup container, int position); @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } }
NewsAdapter (主要用于主页新闻列表)
public class NewsAdapter extends PagerAdapter { private Context context; private List<NewsType.DataDTO> mTabs; private List<NewsInfo.RowsDTO> mNewsInfo; public NewsAdapter(Context context, List<NewsType.DataDTO> mTabs, List<NewsInfo.RowsDTO> mNewsInfo) { this.context = context; this.mTabs = mTabs; this.mNewsInfo = mNewsInfo; } //获取选项卡表头 public CharSequence getPageTitle(int position){ return mTabs.get(position).getName(); } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ListView listView = new ListView(context); setListView(listView,position); container.addView(listView); return listView; } //设置listView public void setListView(ListView listView,int position){ //分类数据 ArrayList<NewsInfo.RowsDTO> newsInfos = new ArrayList<>(); for (int i = 0; i < mNewsInfo.size(); i++) { if (mNewsInfo.get(i).getType().equals(mTabs.get(position).getId()+"")){ newsInfos.add(mNewsInfo.get(i)); } } //设置适配器 SuperBase superBase = new SuperBase(newsInfos.size()) { private ImageView mNewsImg; private TextView mNewsTitle; private TextView mNewsContent; private TextView mNewsMsg; @Override public View getView(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater.from(context).inflate(R.layout.item_news,parent,false); mNewsImg = (ImageView) convertView.findViewById(R.id.news_img); mNewsTitle = (TextView) convertView.findViewById(R.id.news_title); mNewsContent = (TextView) convertView.findViewById(R.id.news_content); mNewsMsg = (TextView) convertView.findViewById(R.id.news_msg); new GetNetImage(context,newsInfos.get(position).getCover(),mNewsImg); mNewsTitle.setText(newsInfos.get(position).getTitle()); mNewsContent.setText(newsInfos.get(position).getContent()); String msg = "评论总数:"+newsInfos.get(position).getCommentNum()+"\t\t发布时间:"+newsInfos.get(position).getPublishDate(); mNewsMsg.setText(msg); return convertView; } }; listView.setAdapter(superBase); //listView条目点击事件 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { NewsInfoSkip newsInfoSkip = new NewsInfoSkip(); NewsInfo.RowsDTO rowsDTO = newsInfos.get(position); newsInfoSkip.setImage(rowsDTO.getCover()); newsInfoSkip.setTitle(rowsDTO.getTitle()); newsInfoSkip.setContent(rowsDTO.getContent()); Intent intent = new Intent(context, NewsInfoActivity.class); intent.putExtra(NEWS,newsInfoSkip); context.startActivity(intent); } }); } @Override public int getCount() { return mTabs.size(); } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } }