ich die folgende Methode bin mit dem Benutzer speichern eingegebenen Variablen zwischen Aktivitäten:Werte wahren zwischen den Aktivitäten über Bundle
// Save instance between activities
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
Toast.makeText(searchParam.this, "onSaveInstanceState", Toast.LENGTH_SHORT).show();
savedInstanceState.putString("subject", selectedSubject);
savedInstanceState.putString("priceBand", priceBand);
savedInstanceState.putFloat("rating", starRating);
savedInstanceState.putBoolean("isCheck", checked);
super.onSaveInstanceState(savedInstanceState);
}
Wenn der Benutzer die erweiterten Optionen ausgewählt er/sie an den advancedSearch.class
geschickt wird, um andere Dinge zu vollbringen über diese Methode:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(searchParam.this, "onCreate called", Toast.LENGTH_LONG).show();
if (savedInstanceState != null)
{
Toast.makeText(searchParam.this, "if savedInstanceState != NULL", Toast.LENGTH_LONG).show();
selectedSubject = savedInstanceState.getString("subject");
priceBand = savedInstanceState.getString("priceBand");
checked = savedInstanceState.getBoolean("isCheck");
starRating = savedInstanceState.getFloat("rating");
}
else
Toast.makeText(searchParam.this, "if savedInstanceState = NULL", Toast.LENGTH_SHORT).show();
// Call all listeners
listenerForRatingBar();
listenerForSubject();
listenerForSearch();
listenerForAdvSearch();
listenerForGeoCheck();
listenerForPrice();
}
:
public void listenerForAdvSearch()
{
// Initialize advanced options button
Button advancedOptionsBtn = (Button) findViewById(R.id.advancedButton);
advancedOptionsBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent advancedOptions = new Intent(searchParam.this, advancedSearch.class);
startActivity(advancedOptions);
}
});
}
Auf Rückkehr ist mein onCreate Methode wie folgt aufgerufen
Ich habe ein paar Toast-Nachrichten für mein persönliches Debugging drin. Mein Problem ist in der if-Anweisung in der onCreate-Methode; Das Paket "savedInstanceState" wird als NULL zurückgegeben und die Werte bei der Rückgabe der erweiterten Optionsklasse werden nicht wiederhergestellt. Warum passiert dies?
HINWEIS: hier ist der entsprechende Code für Advanced Klasse:
public class advancedSearch extends AppCompatActivity {
// initialize variables
int minute_x, hour_x;
int year_x, month_x, day;
static final int dialogid = 0;
static final int tdialogid = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_advanced_search);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Call picker dialogs on button click
showDialogOnButtonClick();
showTimeDialogOnButtonClick();
}
Beginnen Sie, einen anderen 'Activity' oder gleich? – razzledazzle
Ich beginne eine neue Aktivität. – Daniel
Überprüfen Sie die bearbeitete Antwort. – razzledazzle