wie save state mit onSaveInstanceState und onRestoreInstanceState, während die Ausrichtung ändern
Ich lese fast alle Artikel über onSaveInstanceState und onRestoreInstanceState in Stack overflow, aber ich kann mein problem lösen.
Ich habe eine text-anzeigen und-Taste in meinem main.java und während Sie auf die Schaltfläche Wert einer ( eine ist eine int-variable) variable erhöhen und zeigen Sie in der text-Ansicht, aber wenn ich mich drehen mein Handy ( Ausrichtung ändern), text-Ansicht zurücksetzen.
Ich überschreiben onSaveInstanceState und onRestoreInstanceState aber es funktioniert nicht.
eine weitere Sache, die ich besonders layout-land.xml Datei im Querformat anzuzeigen.
hier ist mein 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");
}
}
- und hier meine main.xml
<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>
Ich brauche wirklich etwas Hilfe hier.
Ich wirklich schätzen Ihre Hilfe.
Ich weiß, ich wollte
edit
und Aufräumen war ich dann doch, wie W...T...Hu r right, denn ich bin ein frischer Mann in android.
dies ist sehr hilfreich developer.android.com/training/basics/activity-lifecycle/...
InformationsquelleAutor Reza Shek | 2012-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke dieser code ist hilfreich für dich..
InformationsquelleAutor Durgpal Singh
Als ein update, Sie könnten nur eingestellt
freezesText="true"
http://developer.android.com/reference/android/R.attr.html#freezesText
Oder
Dies ist das einfachste Beispiel:
Aber eine innere Klasse, stellt Ihr Zustand wird es viel schöner, wenn Sie mit dem sparen beginnen, eine Menge von Objekten, auf die Ausrichtung zu ändern.
Verwendung einer inneren Klasse, würde es Aussehen wie das unten. Sie können sich vorstellen, wie Sie mehr und mehr Staat zu retten, die innere Klasse macht es viel einfacher (weniger chaotisch) - handler.
InformationsquelleAutor Blundell
müssen Sie rekonstruieren Ihre anzeigen von Komponenten mit gespeicherten Werten.
füllen Sie Ihre textview mit dem gespeicherten Wert.
InformationsquelleAutor Nesim Razon
Tun Sie wirklich wollen, um diese Methoden verwenden ?
Hier gehen Sie eine Art von Lösung für Ihr problem, legen Sie einfach diese in Ihre manifest-Datei
Wenn Sie dies tun, werden Ihre Aktivitäten nicht laden alle Ansichten zurücksetzen, Ihre Werte, wenn Sie die Ausrichtung ändern
Das ist keine Lösung, es ist ein workaround, um die Orientierung neu gestartet. Ihre Aktivität kann gestartet werden, während eine Reihe von Veranstaltungen, Orientierung ändern, ist nur einer von Ihnen.
Es wird allgemein und öffentlich beraten, diese Praxis zu vermeiden, wie es aufgehört hat, als auch einen workaround, wie sich android entwickelt hat.
InformationsquelleAutor digulino
Vernachlässigt, aber schwerwiegenden Fehler.
Sie müssen zuerst die Daten übergeben onSavedInstanceState() und der Aufruf onSavedInstanceState() . Wenn Sie denken, dann werden Sie feststellen, dass seine nutzlos zu nennen onSavedInstanceState bevor die Daten gespeichert werden. es wird nicht speichern Sie die aktivitätsinstanz als onSavedInstanceState ()aufgerufen wird, bevor..
Es sollte werden wie :
InformationsquelleAutor DUDE_MXP