从适配器实现onClick中的复选框的onClick的监听器

时间:2016-08-26 11:26:15

标签: android android-fragments listener

我需要在适配器中为复选框clickListener创建一个接口,以便我可以在片段中实现它。

下面的代码在myadapter中,我需要在使用适配器的Fragment中的clickListener中移动逻辑

holder.ivLike.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (!isLike) {
            like(postsData.getNews_id());
            realmResults.get(position).setChecked(true);
            holder.tvNewsCountLike.setText("" + (Integer.parseInt(holder.tvNewsCountLike.getText().toString()) + 1));
            holder.ivLike.setChecked(true);
            isLike = true;
        } else {
            unlike(postsData.getNews_id());
            holder.tvNewsCountLike.setText("" + (Integer.parseInt(holder.tvNewsCountLike.getText().toString()) - 1));
            holder.ivLike.setChecked(false);
            isLike = false;

        }

    }
});

2 个答案:

答案 0 :(得分:2)

在适配器中,将此类内容声明为div { background: url(icon.png); } 接口:

Listener

现在,在你的片段中,实现监听器并监听适配器:

public class FooAdapter extends RecyclerView.Adapter<ViewHolder> {

    public interface Listener {
        void onItemClicked(); // Customize to your needs
    }

    private final List<Listener> listeners = new ArrayList<>();

    public void addListener(Listener l) {
        listeners.add(l);
    }

    // In your viewholder:
    holder.ivLike.setOnClickListener(new View.OnClickListener() {
        @Override public void onClick(View v) {
            for(Listener l : listeners) l.onItemClicked();
        }
    });
}

答案 1 :(得分:2)

您可以在此处使用界面回调。

例如:

public class MyAdapter {
private MyListener mListener;


public void setListener(MyListener listener){
  mListene r= listener;
}


 //where ever you want to call back
 if(mListener != null){
  mListener.onNotify();
}

public interface MyListener{
 void onNotify();
}

}

活动/细分

 public class MyActivity extends Activity implements MyAdapter.MyListener{

    myAdapter.setListener(this);

    @Override
    public void onNotify(){
      //do your logic here
    }
}