繁体   English   中英

如何在cardview上设置onclicklistener?

[英]How to set onclicklistener on cardview?

我通过我的自定义recyclerview适配器给我的卡片视图充气。现在,我想知道如何在su,mo,tu,we,th,fr,sa位置上从我的adpater类设置点击监听器。

我想要一个数组,如果用户在cardview的0位置点击su,mo,tu,那么数组应该如下[1,2,3]

并在第一个位置用户点击了我们,然后,fr然后我应该得到另一个数组如下[4,5,6]

目前从我的适配器我已经参考了这些textview和添加了点击监听器,但即使选择不同,我也得到两个位置相同的数组。

我的适配器类a如下。

public class Adapter1 extends RecyclerView.Adapter {


private final int VIEW_ITEM = 1;
private final int VIEW_PROG = 0;


private List<String> myDataSet;
private static String KEY1;
// The minimum amount of items to have below your current scroll position
// before loading more.
private int visibleThreshold = 5;
private int lastVisibleItem, totalItemCount;
private boolean loading;
private OnLoadMoreListener onLoadMoreListener;
private static String TAG = "DATA_ADAPTER";
private static ArrayList<String> mSavedTime = new ArrayList<String>();
private static ArrayList<String> mTimeUnit = new ArrayList<>();
private static String mCurrentHour;
private static String mCurrentMinute;

private static Context context;




public AlarmAdapter(Context context, RecyclerView recyclerView, ArrayList<String> mTime, ArrayList<String> mTimeUnit, String mCurrentHour, String mCurrentMinute) {


    this.mSavedTime = mTime;
    this.mTimeUnit = mTimeUnit;
    this.mCurrentHour = mCurrentHour;
    this.mCurrentMinute = mCurrentMinute;

    this.context = context;
    if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {

        final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView
                .getLayoutManager();


        recyclerView
                .addOnScrollListener(new RecyclerView.OnScrollListener() {
                    @Override
                    public void onScrolled(RecyclerView recyclerView,
                                           int dx, int dy) {
                        super.onScrolled(recyclerView, dx, dy);

                        totalItemCount = linearLayoutManager.getItemCount();
                        lastVisibleItem = linearLayoutManager
                                .findLastVisibleItemPosition();
                        if (!loading
                                && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                            // End has been reached
                            // Do something
                            if (onLoadMoreListener != null) {
                                onLoadMoreListener.onLoadMore();
                            }
                            loading = true;
                        }
                    }
                });
    }
}

@Override
public int getItemViewType(int position) {
    return mSavedTime.get(position) != null ? VIEW_ITEM : VIEW_PROG;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                  int viewType) {
    RecyclerView.ViewHolder vh;


    if (viewType == VIEW_ITEM) {
        View v = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.saved_alarm_card, parent, false);

        vh = new StudentViewHolder(v);

    } else {
        View v = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.more_progress_item, parent, false);

        vh = new ProgressViewHolder(v);
    }

    return vh;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof StudentViewHolder) {


        ((StudentViewHolder) holder).mTimeDigitText.setText(mSavedTime.get(position));
        ((StudentViewHolder) holder).mTimeUnitText.setText(mTimeUnit.get(position));
        //  ((StudentViewHolder) holder).dateField.setText(mFileDate.get(position));


    } else {
        ((ProgressViewHolder) holder).progressBar.setIndeterminate(true);
    }
}

public void setLoaded() {
    loading = false;
}

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

public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener) {
    this.onLoadMoreListener = onLoadMoreListener;
}


//
public class StudentViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    public TextView mTimeDigitText;
    public TextView mTimeUnitText;
    private SwitchCompat mAlarmButtonPower;
    private ImageView mAlarmBellImage;

    private TextView mSundayButton;
    private TextView mMondayButton;
    private TextView mTuesdayButton;
    private TextView mWednesdayButton;
    private TextView mThursdayButton;
    private TextView mFridayButton;
    private TextView mSaturdayButton;

    public CardView cardView1;

    public StudentViewHolder(View v) {
        super(v);
        mTimeDigitText = (TextView) v.findViewById(R.id.timeDigit);
        mTimeUnitText = (TextView) v.findViewById(R.id.timeUnit);
        mAlarmBellImage = (ImageView) v.findViewById(R.id.alarmBell);
        mAlarmButtonPower = (SwitchCompat) v.findViewById(R.id.alarmPowerSwitch);

        mSundayButton = (TextView) v.findViewById(R.id.sunday);
        mMondayButton = (TextView) v.findViewById(R.id.monday);
        mTuesdayButton = (TextView) v.findViewById(R.id.tuesday);
        mWednesdayButton = (TextView) v.findViewById(R.id.wednesday);
        mThursdayButton = (TextView) v.findViewById(R.id.thursday);
        mFridayButton = (TextView) v.findViewById(R.id.friday);
        mSaturdayButton = (TextView) v.findViewById(R.id.saturday);


        v.findViewById(R.id.alarmBell).setOnClickListener(this);
        v.findViewById(R.id.sunday).setOnClickListener(this);
        v.findViewById(R.id.monday).setOnClickListener(this);
        v.findViewById(R.id.tuesday).setOnClickListener(this);
        v.findViewById(R.id.wednesday).setOnClickListener(this);
        v.findViewById(R.id.thursday).setOnClickListener(this);
        v.findViewById(R.id.friday).setOnClickListener(this);
        v.findViewById(R.id.saturday).setOnClickListener(this);





        mAlarmButtonPower.setChecked(true);
        if (mAlarmButtonPower.isChecked()) {
            mBellCount = 2;
            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell_touch));
            Toast.makeText(context, "Alarm Activated!!", Toast.LENGTH_SHORT).show();
        } else {
            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell));
            Toast.makeText(context, "First Activate Your Alarm", Toast.LENGTH_SHORT).show();
        }
        mAlarmButtonPower.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                switch (buttonView.getId()) {

                    case R.id.alarmPowerSwitch:

                        if (!isChecked) {
                            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell));
                            Toast.makeText(context, "Alarm is off!!", Toast.LENGTH_SHORT).show();

                        } else {
                            //  AlarmReceiver.stopRingtone();
                            // alarmManager.cancel(pendingIntent);
                            Log.d("MyActivity", "Alarm Off");
                            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell_touch));
                            Toast.makeText(context, "Alarm is on!!", Toast.LENGTH_SHORT).show();
                        }
                        break;

                    default:
                        break;
                }
            }
        });

    }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.alarmBell:

                mBellCount = mBellCount + 1;

                if (mBellCount % 2 == 0) {
                    mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell_touch));
                } else {
                    mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell));
                }

                break;

            case R.id.sunday:
                    mSunCount = mSunCount + 1;
              //  mDaysArrayList.add(1);
                if (mSunCount % 2 == 0) {
                    mSundayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));

                } else {
                    mSundayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                  //  mDaysArrayList.clear();
                }
                break;

            case R.id.monday:
                mMonCount = mMonCount + 1;
              //  mDaysArrayList.add(2);
                if (mMonCount % 2 == 0) {
                    mMondayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    mMondayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    //mDaysArrayList.remove(1);
                   // mDaysArrayList.clear();
                }
                break;
            case R.id.tuesday:

                mTueCount = mTueCount + 1;
              //  mDaysArrayList.add(3);
                if (mTueCount % 2 == 0) {
                    mTuesdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    mTuesdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    // mDaysArrayList.remove(2);
                    //mDaysArrayList.clear();
                }
                break;

            case R.id.wednesday:

                mWedCount = mWedCount + 1;
             //   mDaysArrayList.add(4);
                if (mWedCount % 2 == 0) {
                    mWednesdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    mWednesdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    // mDaysArrayList.remove(3);
                    //mDaysArrayList.clear();
                }
                break;

            case R.id.thursday:

                mThuCount = mThuCount + 1;
            //    mDaysArrayList.add(5);
                if (mThuCount % 2 == 0) {
                    mThursdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {

                    mThursdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    // mDaysArrayList.remove(4);
                    //mDaysArrayList.clear();
                }
                break;

            case R.id.friday:

                mFriCount = mFriCount + 1;
             //   mDaysArrayList.add(6);
                if (mFriCount % 2 == 0) {
                    mFridayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    mFridayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    //mDaysArrayList.remove(5);
                   // mDaysArrayList.clear();
                }
                break;

            case R.id.saturday:

                mSatCount = mSatCount + 1;
              //  mDaysArrayList.add(7);
                if (mSatCount % 2 == 0) {
                    mSaturdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    mSaturdayButton.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    //mDaysArrayList.remove(6);
                 //   mDaysArrayList.clear();
                }
                break;


        }


    }
}

public static class ProgressViewHolder extends RecyclerView.ViewHolder {
    public ProgressBar progressBar;

    public ProgressViewHolder(View v) {
        super(v);
        progressBar = (ProgressBar) v.findViewById(R.id.progressBar1);
    }
}
}

任何帮助都是最受欢迎的。谢谢

你可以得到这样的位置:

@Override
public void onClick(View view) {
    int position = getAdapterPosition();
    //do something depending on the position
    //...
}

考虑到您的viewholer已经拥有与工作日相关的View对象这一事实,您可以轻松地向您的adaper添加自定义多选代码。 (可能有更简单的方法来做到这一点,但我为你提出的问题提供了一个可能的答案)

//decalare this instance variables in your  adapter
//better to go for a hash map but I'm just writing an example
int itemPosition=-1;
List<Integer> selectedDays;

//initiate the list in the adapter constructor
selectedDays=new ArrayList<>();

//make this change in your onBindViewHolder()
StudentViewHolder sHOlder=(StudentViewHolder)holder;
List<TextView> dayViews=new ArrayList<>();
dayView.add(sHolder.mSundayButton);
//continue this and fill the list with all the seven buttons

//check the previously created selectedDays list and set the colors for selected text views
if(postion==itemPosition){
   for(int i=1;i<8;i++){
      TextView tv=dayViews.get(i-1);
      if(selectedList.contains(new Integer(i))){
          tv.setTextColor(/*your selected color*/);
      }else{
          tv.setTextColor(/*your unselected color*/);
      }
   }
}else{
   for(TextView tv:dayViews){
      tv.setTextColor(/* your unselectedColor */);
   }
}

//now implement onclicks for the days;
for(int i=0;i<dayViews.length;i++){
   TextView tv=dayViews.get(i);
   tv.setOnClickListener(new View.OnCLickListener{
      @Override
      public void onClick(View v){
          //clear the list if the item position has changed
          if(position!=itemPosition){
             selectedDays.clear();
          }
          itemPosition=position;
          selectedDays.add(i+1);
          //notify the adapter
          notifyDataSetChanged();
      }
   });
}

//you can convert the list to an array when you want to take the data
int[] returnArray=new Int[selectedDays.size()];
for(int i=0;i<selectedDays.size;i++){
    returnArray[i]=selectedDays.get(i);
}

结果是相同的,因为您在一个数组列表中为每个项目(即)mDaysArrayList设置数据。

您应该分别为每个项目创建mDaysArrayList。 为项目创建课程是更好的做法。 并在此类中放置选定日期的arrayList。

try this

public class AlarmAdapter extends RecyclerView.Adapter {


private final int VIEW_ITEM = 1;
private final int VIEW_PROG = 0;


private List<String> myDataSet;
private static String KEY1;
// The minimum amount of items to have below your current scroll position
// before loading more.
private int visibleThreshold = 5;
private int lastVisibleItem, totalItemCount;
private boolean loading;
private OnLoadMoreListener onLoadMoreListener;
private static String TAG = "DATA_ADAPTER";
private static ArrayList<String> mSavedTime = new ArrayList<String>();
private static ArrayList<String> mTimeUnit = new ArrayList<>();
private static String mCurrentHour;
private static String mCurrentMinute;

private static Context context;

private  int mBellCount = 1;
private  int mSunCount = 1;
private  int mMonCount = 1;
private  int mTueCount = 1;
private  int mWedCount = 1;
private  int mThuCount = 1;
private  int mFriCount = 1;
private  int mSatCount = 1;
private static ArrayList<Integer> mDaysArrayList = new ArrayList<Integer>();
private HashMap<Integer,List<Integer>> mDaysHashMap = new HashMap<>();

/*public AlarmAdapter(Context context, RecyclerView recyclerView, ArrayList<String> mSavedTime,
                            String mUserSavedPin, ArrayList<Integer> mFileId, Integer mFamilyMemberId,
                            String mResponseToken, ArrayList<String> mFileDate, ArrayList<String> mFileUrl,
                            ArrayList<String> mFileDescription) {*/

public AlarmAdapter(Context context, RecyclerView recyclerView, ArrayList<String> mTime, ArrayList<String> mTimeUnit, String mCurrentHour, String mCurrentMinute) {


    this.mSavedTime = mTime;
    this.mTimeUnit = mTimeUnit;
    this.mCurrentHour = mCurrentHour;
    this.mCurrentMinute = mCurrentMinute;

    this.context = context;
    if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {

        final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView
                .getLayoutManager();


        recyclerView
                .addOnScrollListener(new RecyclerView.OnScrollListener() {
                    @Override
                    public void onScrolled(RecyclerView recyclerView,
                                           int dx, int dy) {
                        super.onScrolled(recyclerView, dx, dy);

                        totalItemCount = linearLayoutManager.getItemCount();
                        lastVisibleItem = linearLayoutManager
                                .findLastVisibleItemPosition();
                        if (!loading
                                && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                            // End has been reached
                            // Do something
                            if (onLoadMoreListener != null) {
                                onLoadMoreListener.onLoadMore();
                            }
                            loading = true;
                        }
                    }
                });
    }
}

@Override
public int getItemViewType(int position) {
    return mSavedTime.get(position) != null ? VIEW_ITEM : VIEW_PROG;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                  int viewType) {
    RecyclerView.ViewHolder vh;


    if (viewType == VIEW_ITEM) {
        View v = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.saved_alarm_card, parent, false);

        vh = new StudentViewHolder(v);

    } else {
        View v = LayoutInflater.from(parent.getContext()).inflate(
                R.layout.more_progress_item, parent, false);

        vh = new ProgressViewHolder(v);
    }

    return vh;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof StudentViewHolder) {


        ((StudentViewHolder) holder).mTimeDigitText.setText(mSavedTime.get(position));
        ((StudentViewHolder) holder).mTimeUnitText.setText(mTimeUnit.get(position));
        //  ((StudentViewHolder) holder).dateField.setText(mFileDate.get(position));

holder.mAlarmBellImage.setOnClickListener(new Listener(holder.mSundayButton,holder.mAlarmBellImage));
      holder.mSundayButton.setOnClickListener(new Listener(holder.mSundayButton,holder.mAlarmBellImage));
       holder.mMondayButton.setOnClickListener(new Listener(holder.mMondayButton,holder.mAlarmBellImage));
      holder.mTuesdayButton.setOnClickListener(new Listener(holder.mTuesdayButton,holder.mAlarmBellImage));
      holder.mWednesdayButton.setOnClickListener(new Listener(holder.mWednesdayButton,holder.mAlarmBellImage));
        holder.mThursdayButton.setOnClickListener(new Listener(holder.mThursdayButton,holder.mAlarmBellImage));
       holder.mFridayButton.setOnClickListener(new Listener(holder.mFridayButton,holder.mAlarmBellImage));
        holder.mSaturdayButton.setOnClickListener(new Listener(holder.mSaturdayButton,holder.mAlarmBellImage));
    } else {
        ((ProgressViewHolder) holder).progressBar.setIndeterminate(true);
    }
}

public void setLoaded() {
    loading = false;
}

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

public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener) {
    this.onLoadMoreListener = onLoadMoreListener;
}


class Listener implements View.OnClickListener

{
TextView textview;
ImageView alarmview;
Listener(TextView textview,ImageView alarmview)

{
this.alarmview = alarmview;
this.textview = textview;
}
  @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.alarmBell:

                mBellCount = mBellCount + 1;

                if (mBellCount % 2 == 0) {
                    alarmview.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell_touch));
                } else {
                    alarmview.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell));
                }

                break;

            case R.id.sunday:
                    mSunCount = mSunCount + 1;
              //  mDaysArrayList.add(1);
                if (mSunCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));

                } else {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                  //  mDaysArrayList.clear();
                }
                break;

            case R.id.monday:
                mMonCount = mMonCount + 1;
              //  mDaysArrayList.add(2);
                if (mMonCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    //mDaysArrayList.remove(1);
                   // mDaysArrayList.clear();
                }
                break;
            case R.id.tuesday:

                mTueCount = mTueCount + 1;
              //  mDaysArrayList.add(3);
                if (mTueCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    // mDaysArrayList.remove(2);
                    //mDaysArrayList.clear();
                }
                break;

            case R.id.wednesday:

                mWedCount = mWedCount + 1;
             //   mDaysArrayList.add(4);
                if (mWedCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    // mDaysArrayList.remove(3);
                    //mDaysArrayList.clear();
                }
                break;

            case R.id.thursday:

                mThuCount = mThuCount + 1;
            //    mDaysArrayList.add(5);
                if (mThuCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {

                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    // mDaysArrayList.remove(4);
                    //mDaysArrayList.clear();
                }
                break;

            case R.id.friday:

                mFriCount = mFriCount + 1;
             //   mDaysArrayList.add(6);
                if (mFriCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    //mDaysArrayList.remove(5);
                   // mDaysArrayList.clear();
                }
                break;

            case R.id.saturday:

                mSatCount = mSatCount + 1;
              //  mDaysArrayList.add(7);
                if (mSatCount % 2 == 0) {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorProfilePrimary));
                } else {
                    textview.setTextColor(ContextCompat.getColor(context, R.color.colorSecondary));
                    //mDaysArrayList.remove(6);
                 //   mDaysArrayList.clear();
                }
                break;


        }


    }
}


//
public class StudentViewHolder extends RecyclerView.ViewHolder  {
    public TextView mTimeDigitText;
    public TextView mTimeUnitText;
    private SwitchCompat mAlarmButtonPower;
    private ImageView mAlarmBellImage;

    private TextView mSundayButton;
    private TextView mMondayButton;
    private TextView mTuesdayButton;
    private TextView mWednesdayButton;
    private TextView mThursdayButton;
    private TextView mFridayButton;
    private TextView mSaturdayButton;

    public CardView cardView1;

    public StudentViewHolder(View v) {
        super(v);
        mTimeDigitText = (TextView) v.findViewById(R.id.timeDigit);
        mTimeUnitText = (TextView) v.findViewById(R.id.timeUnit);
        mAlarmBellImage = (ImageView) v.findViewById(R.id.alarmBell);
        mAlarmButtonPower = (SwitchCompat) v.findViewById(R.id.alarmPowerSwitch);

        mSundayButton = (TextView) v.findViewById(R.id.sunday);
        mMondayButton = (TextView) v.findViewById(R.id.monday);
        mTuesdayButton = (TextView) v.findViewById(R.id.tuesday);
        mWednesdayButton = (TextView) v.findViewById(R.id.wednesday);
        mThursdayButton = (TextView) v.findViewById(R.id.thursday);
        mFridayButton = (TextView) v.findViewById(R.id.friday);
        mSaturdayButton = (TextView) v.findViewById(R.id.saturday);








        mAlarmButtonPower.setChecked(true);
        if (mAlarmButtonPower.isChecked()) {
            mBellCount = 2;
            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell_touch));
            Toast.makeText(context, "Alarm Activated!!", Toast.LENGTH_SHORT).show();
        } else {
            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell));
            Toast.makeText(context, "First Activate Your Alarm", Toast.LENGTH_SHORT).show();
        }
        mAlarmButtonPower.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                switch (buttonView.getId()) {

                    case R.id.alarmPowerSwitch:

                        if (!isChecked) {
                            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell));
                            Toast.makeText(context, "Alarm is off!!", Toast.LENGTH_SHORT).show();

                        } else {
                            //  AlarmReceiver.stopRingtone();
                            // alarmManager.cancel(pendingIntent);
                            Log.d("MyActivity", "Alarm Off");
                            mAlarmBellImage.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.bell_touch));
                            Toast.makeText(context, "Alarm is on!!", Toast.LENGTH_SHORT).show();
                        }
                        break;

                    default:
                        break;
                }
            }
        });

    }



}

public static class ProgressViewHolder extends RecyclerView.ViewHolder {
    public ProgressBar progressBar;

    public ProgressViewHolder(View v) {
        super(v);
        progressBar = (ProgressBar) v.findViewById(R.id.progressBar1);
    }
}
}

最简单的方法是在你的onBindViewHolder调用viewHolder.itemView.setOnClickListener(listner)如下所示:

  @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {       
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM