2 回答
TA贡献1794条经验 获得超7个赞
你不能使用NieuwsAdapter.setOnItemClickListener(getActivity());,除非你的活动实现了OnItemClickListener 接口,但我看到你的片段实现了OnItemClickListener,所以你可以像这样使用片段:
fNieuwsAdapter.setOnItemClickListener(NieuwsFragment.this);
顺便说一下,您通过意图发送数据:
detailIntent.putExtra(EXTRA_URL, clickedItem.getImageUrl());
detailIntent.putExtra(EXTRA_HEADING, clickedItem.getHeading());
detailIntent.putExtra(EXTRA_CONTENT, clickedItem.getContent());
您必须使用相同的参数获取它们(删除“”):
String imageUrl = intent.getStringExtra(EXTRA_URL);
String creatorName = intent.getStringExtra(EXTRA_HEADING);
String likeCount = intent.getStringExtra(EXTRA_CONTENT);
希望这可以帮助
TA贡献1796条经验 获得超4个赞
改变
public NieuwsAdapter(Context context, ArrayList<NieuwsItem> nieuwslist) {
NieuwsContext = context;
NieuwsList = nieuwslist;
}
到
public NieuwsAdapter(Context context, ArrayList<NieuwsItem> nieuwslist, OnItemClickListener mOnClickListener) {
this.NieuwsContext = context;
this.NieuwsList = nieuwslist;
this.NieuwsListener = mOnClickListener;
}
和这个
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (NieuwsListener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
NieuwsListener.onItemClick(position);
}
}
}
});
改成
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NieuwsListener.onItemClick(int position);
}
});
然后在片段中你可以这样做
fNieuwsAdapter = new NieuwsAdapter(getActivity(), fNieuwsList,new NieuwsAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position)
{
//DoSomethingHere
}
});
添加回答
举报