适配器的设置

   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);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值