사용자가 화면을 회전 할 때 RecyclerView 데이터를 복원하려고합니다. __MESSAGE_Item.java :savedInstanceState 복원이 작동하지 않습니다.
public class __MESSAGE_Item implements Serializable {
private String title, writer, message, index, parent;
int time, level;
public __MESSAGE_Item() {
}
public __MESSAGE_Item(String title, int time, String writer, String message, String index, String parent, int level) {
this.title = title;
this.time = time;
this.writer = writer;
this.message = message;
this.index = index;
this.parent = parent;
this.level = level;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getIndex() {
return index;
}
public void setIndex(String index) {
this.index = index;
}
public String getParent()
{
return parent;
}
public void setParent(String parent)
{
this.parent = "בתגובה להודעה " + parent;
}
public int getLevel()
{
return level;
}
public void setLevel(int level)
{
this.level = level;
}
}
MainActivity.java :
private ArrayList<__MESSAGE_Item> MessageList = new ArrayList<__MESSAGE_Item>();
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LVM = (RecyclerView) findViewById(R.id.LVM);
adapter = new __MESSAGE_ListAdapter(MessageList, getApplicationContext());
if (savedInstanceState == null) {
//Call The AsyncTask
new GetAllMessages().execute();
}
.....
}
@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putSerializable("LVMData", MessageList);
super.onSaveInstanceState(savedInstanceState);
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// Always call the superclass so it can restore the view hierarchy
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
MessageList = (ArrayList<__MESSAGE_Item>) savedInstanceState.getSerializable("LVMData");
adapter.notifyDataSetChanged();
}
}
데이터는 I 복원하려고 할 때 잘 통과하지만 RecyclerView가 비어 이 내 코드입니다. 내가 뭘 잘못하고 있니?
실제로 이것은 어떤 차이도 없습니다. – vilpe89