適配器與Activity之間相互傳值

Activity代碼

package com.vimi8.app.activity;

import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.vimi8.app.R;
import com.vimi8.app.adapter.BoTitleAdapter;
import com.vimi8.app.framework.ActivityBase;
import com.vimi8.app.model.Dealer;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by vimi8 on 2017/6/19.
 */

public class MyBoTitleActivity extends ActivityBase {


    List<Dealer> dealers = new ArrayList<>();

    private RecyclerView recyclerView;
    private BoTitleAdapter boTitleAdapter;

    private Button guan_zhu;

    private String id = "";


    @Override
    protected void initVariables(Bundle savedInstanceState) {

    }

    @Override
    protected int initLayoutViews() {
        return R.layout.activity_my_bo_title;
    }

    @Override
    protected void initViewsAndStaticData() {
        recyclerView = (RecyclerView) findViewById(R.id.sub_container);

        guan_zhu = (Button) findViewById(R.id.guan_zhu);

        recyclerView.setLayoutManager(new GridLayoutManager(MyBoTitleActivity.this, 3));

        dealers.add(new Dealer("1","興興超市","http://img1.imgtn.bdimg.com/it/u=2274521812,939606891&fm=26&gp=0.jpg"));
        dealers.add(new Dealer("2","興興超市","http://img1.imgtn.bdimg.com/it/u=1733071988,3600838707&fm=26&gp=0.jpg"));
        dealers.add(new Dealer("3","興興超市","http://img2.imgtn.bdimg.com/it/u=1926648642,2525346282&fm=26&gp=0.jpg"));
        dealers.add(new Dealer("4","興興超市","http://img2.imgtn.bdimg.com/it/u=1926648642,2525346282&fm=26&gp=0.jpg"));
        dealers.add(new Dealer("5","興興超市","http://img2.imgtn.bdimg.com/it/u=1926648642,2525346282&fm=26&gp=0.jpg"));
        boTitleAdapter = new BoTitleAdapter(MyBoTitleActivity.this,dealers);
        recyclerView.setAdapter(boTitleAdapter);

        boTitleAdapter.setOnItemClickListener(new BoTitleAdapter.OnRecyclerViewItemClickListener() {
            @Override
            public void onItemClick(View view, String idList) {
                id+=idList;
            }
        });


        guan_zhu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MyBoTitleActivity.this,id,Toast.LENGTH_LONG).show();
            }
        });



    }
}

Adapter代碼

package com.vimi8.app.adapter;

import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;

import com.vimi8.app.R;
import com.vimi8.app.model.Dealer;
import com.vimi8.app.utils.CommonClassPlan;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by think on 2016/10/21.
 */
public class BoTitleAdapter extends RecyclerView.Adapter<BoTitleAdapter.ViewHolder> implements View.OnClickListener {

    Activity mContext;
    List<Dealer> mDatas = new ArrayList<>();
    View v;
    String idList = "";


    public BoTitleAdapter(Activity context, List<Dealer> datas) {
        mContext = context;
        mDatas = datas;
    }



    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        v = LayoutInflater
                .from(parent.getContext())
                .inflate(R.layout.item_bo, parent, false);
        v.setOnClickListener(this);
        return new ViewHolder(v);
    }



    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        v.setTag(holder);
        final Dealer menu = mDatas.get(position);
        CommonClassPlan.funCircleHeadImage(mContext,menu.getImg(),holder.headImg);
        holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if(isChecked){
                    idList =menu.getId();
                    mOnItemClickListener.onItemClick(v,idList);
                }else {
                    idList = "";
                    mOnItemClickListener.onItemClick(v,idList);
                }

            }
        });
    }

    @Override
    public int getItemCount() {
        return mDatas.size();
    }


    
    
    private OnRecyclerViewItemClickListener mOnItemClickListener = null;
    public interface OnRecyclerViewItemClickListener {
        void onItemClick(View view, String idList);
    }
    public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
        this.mOnItemClickListener = listener;
    }
    @Override
    public void onClick(View v) {
        if (mOnItemClickListener != null) {
            //注意這裏使用getTag方法獲取數據
            mOnItemClickListener.onItemClick(v,idList);
        }
    }

    

    public class ViewHolder  extends RecyclerView.ViewHolder{

        /**
         * 菜單名稱
         */

        private ImageView headImg;
        private CheckBox checkBox;
        public ViewHolder(final View view) {
            super(view);
            headImg = (ImageView) view.findViewById(R.id.head_img);
            checkBox = (CheckBox) view.findViewById(R.id.checkBox);
        }
    }
}

效果圖:

















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章