0
私はRecyclerViewにユーザーのリストを持っています。特定の行をクリックするとダイアログが表示され、ユーザーはセルの背景色を変更できます。しかし、すべてが動作しますが、私が携帯電話を回転させると白い背景に戻ります。 recyclerViewの状態を保存し、回転後に復元するにはどうすればよいですか?私はsaveInstanceStateで試しましたが、その効果を達成できませんでした。アダプタで回転後のRecyclerViewの状態を復元する
MyViewHolder:
public MyViewHolder(View view) {
super(view);
user_name = (TextView) view.findViewById(R.id.user_name);
user_surname = (TextView) view.findViewById(R.id.user_surname);
User_description = (TextView) view.findViewById(R.id.user_description);
user_dob = (TextView) view.findViewById(R.id.user_dob);
user_avatar = (AvatarImageView) view.findViewById(R.id.user_avatar);
mTrash = (ImageView) view.findViewById(R.id.trash_img);
item_ll = (LinearLayout)view.findViewById(R.id.item_layout);
item_ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((MainActivity) ctx).userItemClick(getAdapterPosition());
}
});
}
MainActivityはuserItemClick方法があります。
@Override
public void userItemClick(final int pos) {
Log.e(TAG, "userItemClick: " + pos);
DetailsDialog dialog = new DetailsDialog(this,mRecyclerView,pos);
dialog.show();
}
をそして、ここに私のカスタムダイアログクラスです:ここ
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_details);
mYelloewLayout = (LinearLayout) findViewById(R.id.yellow_layout);
mGreenLayout = (LinearLayout) findViewById(R.id.green_layout);
mRedLayout = (LinearLayout) findViewById(R.id.red_layout);
mYelloewLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
view.getChildAt(pos).setBackgroundColor(getContext().getResources().getColor(R.color.yellow));
dismiss();
}
});
mRedLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
view.getChildAt(pos).setBackgroundColor(getContext().getResources().getColor(R.color.red));
dismiss();
}
});
mGreenLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
view.getChildAt(pos).setBackgroundColor(getContext().getResources().getColor(R.color.green));
dismiss();
}
});
}
私のマニフェスト
ですお願いします。 :)
リサイクラービューの状態を保存しないでください。基礎となるアイテムの状態を保存します。 – poss
あなたのAndroidManifest.xmlを表示してください。 –
あなたの回答はこちらhttps://stackoverflow.com/a/32283912/5281666 –