2012-08-13 54 views
0

我正在使用適配器(viewpager),當應用程序更改方向時,它會丟失其信息。保存這些信息最簡單的方法是哪一種?我打算在適配器內部使用savedInstanceState,但它不能識別它。管理適配器(viewpager)時,將數據保存到savedInstanceState的最簡單方法

+0

能否請你告訴我們,你到目前爲止,你已經嘗試過什麼什麼,和你的儲蓄? – 2012-08-13 16:22:56

+0

我有一些佈局,由Viewpager管理edittext。如果我改變手機的方向,它會丟失信息。我知道我必須保存它們,但我不能在適配器內使用savedInstanceState。我有以下幾點:創建一個純文本,創建一個小數據庫,從創建適配器的類每隔x秒刷新一次,並從變量中檢索信息,但我認爲這些事情對於如此愚蠢的操作來說非常複雜 – 2012-08-13 16:28:26

+0

這不是關於我有這一行錯誤。這是關於如何以簡單的方式做到這一點?這些步驟,代碼行遵循它。 – 2012-08-13 16:59:58

回答

0

最後,我已經做了以下霍夫雷的意見,因爲他在Activity restart on rotation Android 和尋找指向http://developer.android.com/intl/es/guide/topics/resources/runtime-changes.html

不得修改清單。請勿添加機器人:configChanges

SOLUTION:

//ALL THE VARIABLES YOU NEED TO SAVE IN YOUR ADAPTER PUT THEM AS PUBLIC, IE: 
//public int a = 2; 
//public String b = "a"; 

Public class Yourclass extends Activity{ 

Classofyouradapter adapter; 

@Override 
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.yourlayout); 

    final Save_object data = (Save_object) getLastNonConfigurationInstance(); 

    adapter = new Classofyouradapter(your variables); 
    if (data != null) { 
      fillit(data); 
    } 
    myPager = (ViewPager) findViewById(R.id.yourpanelpager);  
    myPager.setAdapter(adapter);  
} 

@Override 
public Object onRetainNonConfigurationInstance() { 
    final Save_object data = new Save_object(); 
    return data;   
} 

public class Save_object{ 
    int a = adapter.a; 
    String b = adapter.b; 
    //Rest of variables 
} 

public void fillit(Save_object data){ 
    adapter.a= data.a; 
    adapter.b= data.b;   
    //Rest of variables 
} 

} 
相關問題