【发布时间】:2020-08-02 09:02:54
【问题描述】:
我是编程新手,遇到了问题。我不想用 sharedPreferences 保存整数clicks,所以我可以保存按钮的状态
mButton,但我做不到。所以也许你们可以帮助我。我知道有很多问题要问,但我真的开始绝望了。
这是我的代码。我还尝试在 RecyclerView.Adapter 类中分配共享首选项。
public class ExampleAdapter extends
RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> {
private ArrayList<MyItem> mExampleList;
Context mContext;
SharedPreferences sharedPreferences;
private Button mButton;
private int clicks = 0;
public static class ExampleViewHolder extends RecyclerView.ViewHolder {
private TextView mTextView;
public ExampleViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.tv_country);
}
}
public ExampleAdapter(ArrayList<MyItem> exampleList, Context context) {
mContext = context;
mExampleList = exampleList;
}
@Override
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v =
LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item,
parent,
false);
ExampleViewHolder evh = new ExampleViewHolder(v);
mButton = v.findViewById(R.id.tv_button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clicks=clicks+1;
int previousclicks=sharedPreferences.getInt("totalclick",0);
if (clicks % 2 == 0)
mButton.setBackgroundResource(R.drawable.button_green);
else
mButton.setBackgroundResource(R.drawable.button_red);
}
});
return evh;
}
@Override
public void onBindViewHolder(ExampleViewHolder holder, int position) {
MyItem currentItem = mExampleList.get(position);
holder.mTextView.setText(currentItem.getTaskText());
sharedPreferences =
mContext.getSharedPreferences("click_sharedpreference",Context.MODE_PRIVATE);
}
@Override
public int getItemCount() {
return mExampleList.size();
}
}
【问题讨论】:
-
你试过什么?什么不工作?
标签: java android sharedpreferences android-recyclerview