jak zapisać stan za pomocą onSaveInstanceState i onRestoreInstanceState podczas zmiany orientacji
Przeczytałem prawie cały artykuł o onSaveInstanceState i onRestoreInstanceState w przepełnieniu stosu, ale nie mogę rozwiązać mojego problemu.
Mam widok tekstowy i przycisk w main.java i po kliknięciu wartości przycisku a (a jest zmienną typu int) zmienna będzie się zwiększać i wyświetlać w widoku tekstu, ale po obróceniu telefonu (zmiana orientacji), resetowanie widoku tekstu.
Nadpisuję onSaveInstanceState i onRestoreInstanceState, ale to nie działa. jeszcze jedno: mam specjalny plik layout-land.xml do widoku poziomego.
oto mój kod
<code> import android.app.Activity; import android.graphics.Typeface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class main extends Activity { /** Called when the activity is first created. */ public int a = 0; public String fonts="TAHOMA.TTF"; TextView tv = (TextView) findViewById(R.id.salavat); Button b = (Button) findViewById(R.id.showsalavat); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b.setOnClickListener(new Button.OnClickListener() { public void onClick(View arg0) { a++; tv.setText(""+a); } }); } @Override protected void onSaveInstanceState(Bundle SavedInstanceState) { super.onSaveInstanceState(SavedInstanceState); SavedInstanceState.putInt("salavat-count", a); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); a= savedInstanceState.getInt ("salavat-count"); } } </code>
i tutaj mój main.xml
<code> <TextView android:id="@+id/shoma" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" android:text="@string/shoma" android:textSize="20sp" /> <Button android:id="@+id/showsalavat" android:layout_width="fill_parent" android:layout_height="150dp" android:text="+" android:textSize="100sp" /> <TextView android:id="@+id/eltemas" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="55dp" android:text="@string/eltemas" /> <TextView android:id="@+id/salavat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" android:textSize="35sp" /> <TextView android:id="@+id/ferestade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="24dp" android:text="@string/salavat" android:textSize="20sp" /> </LinearLayout> </code>
Naprawdę potrzebuję pomocy w tym zakresie. Doceniam twoją pomoc.