我在活动中实现RecyclerView与火力地堡 RecyclerAdapter,并希望得到onClickListener实现它,虽然我试图做到这一点,但东西是不正确的在我的代码我想,请帮助我找到什么是错误的。我已经搜索了另一个问题,但没有得到理解,并找不到解决我的问题。获取onClickListener上RecyclerView与火力地堡中的Android
我使用过Android Studio
火力适配器类文件:
public class HomePage extends AppCompatActivity {
@Override
public void onStart() {
super.onStart();
FirebaseUser currentUser = mAuth.getCurrentUser();
if (currentUser == null) {
sentToStart();
}
FirebaseRecyclerAdapter<post, postViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<post, postViewHolder>(
post.class,
R.layout.post_row_recycle_home,
postViewHolder.class,
mDatabaseReference
) {
@Override
protected void populateViewHolder(postViewHolder viewHolder, post model, int position) {
viewHolder.setwebViewPost(model.getWebViewPost());
}
};
mrecyclerView.setAdapter(firebaseRecyclerAdapter);
}
public static class postViewHolder extends RecyclerViewPager.ViewHolder {
View mView;
public postViewHolder(View itemView) {
super(itemView);
mView = itemView;
mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mClickListener.onItemClick(v, getAdapterPosition());
}
});
}
private postViewHolder.ClickListener mClickListener;
public interface ClickListener {
public void onItemClick(View view, int position);
}
public void setOnClickListener(postViewHolder.ClickListener clickListener) {
mClickListener = clickListener;
}
public void setwebViewPost(String webViewPost) {
WebView webView = (WebView) mView.findViewById(R.id.webView_news);
webView.loadUrl(webViewPost);
}
}
@Override
public postViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
postViewHolder viewHolder = super.onCreateViewHolder(parent, viewType);
viewHolder.setOnClickListener(new postViewHolder().ClickListener() {
@Override
public void onItemClick (View view,int position){
Toast.makeText(this, "Item clicked at " + position, Toast.LENGTH_SHORT).show();
}
});
return viewHolder;
}
so你的'onClick'方法(在'postViewHolder'构造函数中)不被调用或者是什么? – pskink
请不要破坏你的帖子。通过在Stack Exchange网络上发布,您已授予SE无法撤销的权利(根据[CC BY-SA 3.0许可证](https://creativecommons.org/licenses/by-sa/3.0))发布该内容/))。通过SE政策,任何破坏行为都将得到回复。如果你想从你的账户中取消关联这篇文章,请参阅[关于解除关联请求的正确途径?](https://meta.stackoverflow.com/q/323395) – adiga