我在我的回收视图的自定义适配器中有一个图像视图,我通过长按回收视图来设置图像视图的可见性其工作正常,问题我我面临的是,当设置可见性是真实的,并关闭应用程序或去第二次活动的可见性去我需要的东西,当我关闭应用程序或更改活动的可见性仍然是一样的..我是新来的android如何保存在自定义适配器中的imageview状态
public class RecycleViewAdapter extends
RecyclerView.Adapter<RecycleViewAdapter.RecycleViewHolder> {
private List<FileName> fileNames;
private Context context;
private OnItemClicked onClick;
public RecycleViewAdapter(Context context, List<FileName> fileNames) {
this.context = context;
this.fileNames = fileNames;
}
@Override
public RecycleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(parent.getContext());
ViewGroup mainGroup = (ViewGroup) mInflater.inflate(R.layout.grid_item, parent, false);
RecycleViewHolder listHolder = new RecycleViewHolder(mainGroup);
return listHolder;
}
@Override
public void onBindViewHolder(RecycleViewHolder holder, final int position) {
final FileName model = fileNames.get(position);
RecycleViewHolder mainHolder = holder;
mainHolder.title.setText(model.getShorttext());
mainHolder.note.setText(model.getName());
mainHolder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onClick.onItemClick(position);
}
});
mainHolder.setLongClickListener(new LongClickListener() {
@Override
public void onItemLongClick(int position) {
}
});
if (fileNames.get(position).isVisible()) {
holder.imageView.setVisibility(View.VISIBLE);
} else {
holder.imageView.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return (null != fileNames ? fileNames.size() : 0);
}
public void setOnClick(OnItemClicked onClick) {
this.onClick = onClick;
}
private void showPopUpMenu(final int position, final View view) {
final PopupMenu popup = new PopupMenu(context, view);
popup.getMenuInflater().inflate(R.menu.custom_popup_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == R.id.menuLock) {
fileNames.get(position).setVisible(true);
notifyDataSetChanged();
} else {
AlertDialog.Builder alertbox = new AlertDialog.Builder(view.getRootView().getContext());
final EditText input = new EditText(context);
alertbox.setView(input);
alertbox.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
alertbox.setNegativeButton("CANCEL",null);
final AlertDialog dialog = alertbox.create();
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String collect = input.getText().toString();
DBhelper dbhelper = new DBhelper(context);
String pass = dbhelper.searchpass(collect);
if(collect.equals(pass))
{
fileNames.get(position).setVisible(false);
notifyDataSetChanged();
dialog.dismiss();
}
else if (collect.equals(""))
{
input.setError("Hello");
}
else {
Toast.makeText(context, "Password does not match", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
}
});
}
return true;
}
});
popup.show();
}
public interface OnItemClicked {
void onItemClick(int position);
}
public class RecycleViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
public TextView title;
public TextView note;
public CardView cardView;
public ImageView imageView;
LongClickListener longClickListener;
public RecycleViewHolder(View view) {
super(view);
this.title = (TextView) view.findViewById(R.id.title);
this.note = (TextView) view.findViewById(R.id.note);
this.cardView = (CardView) view.findViewById(R.id.card_view);
this.imageView = (ImageView) view.findViewById(R.id.lock);
imageView.setVisibility(View.INVISIBLE);
view.setOnLongClickListener(this);
}
public void setLongClickListener(LongClickListener lc) {
this.longClickListener = lc;
}
@Override
public boolean onLongClick(View v) {
showPopUpMenu(getAdapterPosition(), v);
this.longClickListener.onItemLongClick(getLayoutPosition());
return false;
}
}
}
使用sharedpreference或任何静态变量来保存图像的状态。这样任何你访问你的活动,你看到你的形象在你保存的最后一个状态。 –
你能帮我用我从来没有使用sharedpreference的代码吗? –