0

アダプター(viewpager)を使用していますが、アプリの向きが変わると情報が失われます。この情報を保存する最も簡単な方法はどれですか?アダプタ内でsavedInstanceStateを使用しようとしましたが、認識されません。

4

1 に答える 1

0

最後に、JofreがローテーションAndroidでのアクティビティの再開を指摘し、 http://developer.android.com/intl/es/guide/topics/resources/runtime-changes.html を調べたときに、Jofreのアドバイスに従ってそれを行いました。

マニフェストを変更してはなりません。android:configChangesを追加しないでください

解決:

//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 
}

}
于 2012-08-13T22:37:36.103 に答える