【发布时间】:2018-02-15 13:32:45
【问题描述】:
我正在使用 firebase 上的数据库进行回收器视图。这工作得很好......现在我想实现一个共享按钮,但我不能让按钮引用每个 img。我找到了一个教程,但是当我尝试实现这一行时(如果我删除它,应用程序运行良好,但不引用按钮位置)
public BlogViewHolder(View itemView) {
...
button = (Button)mView.findViewById(R.id.share);
...
当我打开活动时应用程序崩溃 我只使用 toast 进行测试。
public class NoticiasActivity extends AppCompatActivity {
private RecyclerView mBlogList;
FirebaseDatabase database;
DatabaseReference myRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_noticias);
//Recycler View
mBlogList = (RecyclerView)findViewById(R.id.blog_list);
mBlogList.setHasFixedSize(true);
mBlogList.setLayoutManager(new LinearLayoutManager(this));
// Send a Query to the database
database = FirebaseDatabase.getInstance();
myRef = database.getReference("Data");
}
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<ModelClass, BlogViewHolder> firebaseRecyclerAdapter =
new FirebaseRecyclerAdapter<ModelClass, BlogViewHolder>(
ModelClass.class,
R.layout.design_row,
BlogViewHolder.class,
myRef) {
@Override
protected void populateViewHolder(BlogViewHolder viewHolder, ModelClass model,int position) {
viewHolder.setTitle(model.getTitle());
viewHolder.setImage(getApplicationContext(), model.getImage());
viewHolder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "esto es un boton"+ view.getNextFocusUpId(), Toast.LENGTH_SHORT).show();
}
});
}
};
mBlogList.setAdapter(firebaseRecyclerAdapter);
}
//View Holder For Recycler View
public static class BlogViewHolder extends RecyclerView.ViewHolder {
View mView;
Button button ;
public BlogViewHolder(View itemView) {
super(itemView);
button = (Button)mView.findViewById(R.id.share);
mView= itemView;
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// click en la imagen hace algo
//añadir luego
Toast.makeText(v.getContext(), "hola", Toast.LENGTH_SHORT).show();
}
});
}
public void setTitle(String title){
TextView post_title = (TextView)mView.findViewById(R.id.titleText);
post_title.setText(title);
}
public void setImage(Context ctx , String image){
ImageView post_image = (ImageView)mView.findViewById(R.id.imageViewy);
// We Need TO pass Context
Picasso.with(ctx).load(image).into(post_image);
}
}
}
【问题讨论】:
-
您应该将 Logcat 添加到问题中。 stackoverflow.com/questions/23353173/…
标签: android firebase firebase-realtime-database android-recyclerview firebaseui