【发布时间】:2017-02-27 13:26:56
【问题描述】:
我有一个 recyclerview 并且在每个项目中我都有一个按钮。有时我需要在某些项目中隐藏这个按钮。
item 1
button visible
item 2
button gone
...
问题是,我不知道将MyButton 设置为GONE 的最佳位置在哪里。我在public ViewHolder(View itemView) 内部尝试过,但我的应用程序崩溃了。
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
private ImageLoader imageLoader;
private final Context context;
//List to store all posts
List<Posts> Posts;
//Constructor of this class
public CardAdapter(List<Posts> Post, Context context){
super();
this.Posts = Post;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.posts_list, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Posts post = Posts.get(position);
holder.post = post;
//Loading image from url
imageLoader = CustomVolleyRequest.getInstance(context).getImageLoader();
//Showing data on the views
holder.imageView.setImageUrl(post.getImageUrl(), imageLoader);
holder.textViewName.setText(post.getName());
holder.textViewPublisher.setText(post.getPublisher());
holder.setIsRecyclable(false);
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
//Views
public NetworkImageView imageView;
public TextView textViewName;
public TextView textViewPublisher;
public TextView textViewMyButton;
public Posts post;
//Initializing Views
public ViewHolder(View itemView) {
super(itemView);
imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
textViewName = (TextView) itemView.findViewById(R.id.textViewName);
textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher);
textViewMyButton = (TextView) itemView.findViewById(R.id.textViewMyButton);
}
@Override
public void onClick(View v) {
//
}
}
}
我想做这样的事情:
if(StringName == "1"){
TextView txtView2 = (TextView) itemView.findViewById(R.id.MyButton);
txtView2.setVisibility(View.GONE);
}
任何想法我可以在哪里以及如何添加它以隐藏 StringName==1 的 recyclerview 中的按钮?
【问题讨论】:
-
1) 你在比较字符串错误 2) 显示崩溃的代码和与之相关的错误
-
顺便说一句,这让我很困扰,但是您的
Posts类是一个代表一个帖子的单一对象,因此将其命名为Post会更有意义 ;)
标签: android android-layout android-studio android-recyclerview