我需要在适配器中为复选框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;
}
}
});
答案 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
}
}