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 –