如何从android中的适配器访问视图内部活动?

问题描述 投票:1回答:3

有谁知道如何访问适配器imageView内部活动来隐藏视图。请指出任何例子。

android android-activity adapter
3个回答
2
投票

我希望这对你有用。

通过使用SharedPreferences,我们可以轻松地隐藏活动或片段的视图。

SharedPreferences中保存标志,即从活动中保持真实。

如果你正在使用Recyclerview然后在onBindViewHolder方法检查条件

if(flag==true){
    holder.yourView.setVisibility(View.GONE);
}else{
    holder.yourView.setVisibility(View.VISIBLE);
}

0
投票

转到适配器的onBindViewHolder并获取imageview的代码和代码,如holder.mImgVw.setVisibility(View.GONE);


0
投票

您不应该直接与ImageView交互,而是可以使用notifyItemChanged()更新适配器中的ImageView状态。但是,您需要通过在模型数据中添加标志或使用SparseBooleanArray作为保存ImageView状态的机制来稍微修改适配器代码。

这里的例子如下:

public class Adapter ... {
  private SparseBooleanArray mSelectedItems;
  private List<YourModel> mItems;

  public Adapter(List<YourModel> items) {

    mItems = items;
    mSelectedItems = new SparseBooleanArray();
  }

  ...
  public void onBindViewHolder(....) {
    int itemPosition = viewHolder.getAdapterPosition();
    YourModel item = items.get(itemPosition);

    boolean visible = mSelectedItems.get(itemPosition);   
    viewHolder.imageView.setVisibility(visible? View.VISIBLE: View.GONE);

    ...
  }

  public void setItemVisibilityByPosition(int position, boolean visible) {
    mSelectedItems.put(position, visible);
    notifyItemChanged(position);
  }

}

您可以使用以下方法更改图像可见性

 // Assume the mAdapter is your Adapter
 mAdapter.setItemVisibilityByPosition(5, true);
© www.soinside.com 2019 - 2024. All rights reserved.