2016-04-03 3 views
1

Ich habe eine einfache Android-Seite mit einem Spinner, zwei Kontrollkästchen und einem Absenden-Button. Der Java-Code für den Bildschirm ist wie folgt:Wie präsentiert man verschiedene UI bei der ersten oder nachfolgenden App-Nutzung?

import android.content.Context; 
import android.content.DialogInterface; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.content.Intent; 
import org.json.JSONException; 
import org.json.JSONObject; 


public class Main extends AppCompatActivity implements View.OnClickListener{ 

    private Button submit; 
    private Button edit; 

    Spinner place; 
    private CheckBox male; 
    private CheckBox female; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     submit = (Button) findViewById(R.id.btn_submit); 
     submit.setOnClickListener(this); 

     edit = (Button) findViewById(R.id.btn_edit); 
     edit.setVisibility(View.GONE); 

     place = (Spinner) findViewById(R.id.place); 
     place.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapter, View v, 
             int position, long id) { 
       // On selecting a spinner item 
       String item = adapter.getItemAtPosition(position).toString(); 
       str_specimen = item; 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     male = (CheckBox) findViewById(R.id.male); 
     male.setChecked(false); 
     female = (CheckBox) findViewById(R.id.female); 
     female.setChecked(false); 

     submit.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       Intent intent = new Intent(Main.this, 
         home.class); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

Ich habe eine Bearbeitungsschaltfläche, die zunächst nicht sichtbar ist. Wenn ich einen Wert aus dem Drehfeld auswähle und einen Wert im Kontrollkästchen überprüfe, klicke auf Senden. Diese Werte werden an die Datenbank gesendet und home wird gestartet.

Was ich tun möchte, ist, dass, wenn ich die Hauptseite erneut besuche, die zuvor ausgewählten Werte angezeigt werden sollen und der Drehknopf und das Kontrollkästchen nicht anklickbar sein sollten, und die Bearbeitungsschaltfläche sollte angezeigt werden. Wenn ich auf die Bearbeitungsschaltfläche klicke, sollte der Drehknopf und die Checkbox anklickbar sein und ich sollte es erneut einreichen können.

Kann mir jemand sagen, wie das geht?

+1

Sie können SharedPreference für diesen Zweck verwenden. –

Antwort

1

haben eine Methode, sagen isFirstVisit(), die einen Booleschen Wert zurück, wenn dies der Benutzer das erste Mal ist, zu dieser Aktivität:

private boolean isFirstVisit() { 
    SharedPreferences prefs = getApplicationContext().getSharedPreferences("settings", Context.MODE_PRIVATE); 
    return prefs.getBoolean("IsFirstVisit", true); 
} 

Rufen Sie es vor y ou starten Sie Ihre UI anpassen und dann basierend auf seinen Wert anzeigen/ausblenden/aktivieren/deaktivieren/aktivieren/deaktivieren verschiedene UI-Elemente:

boolean firstTime = isFirstVisit(); 

edit = (Button) findViewById(R.id.btn_edit); 
if(firstTime) {   
    edit.setVisibility(View.GONE); 
} 

nicht IsFirstVisit-false zu setzen Vergessen Sie, wenn Sie fertig:

SharedPreferences prefs = getApplicationContext().getSharedPreferences("settings", Context.MODE_PRIVATE); 
SharedPreferences.Editor ed = prefs.edit(); 
ed.putBoolean("IsFirstVisit", false); 
ed.commit(); 
0

Verwenden SharedPreferences nach Klick

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("place", place.getSelectedItem().toString();); 
editor.putInt("male", male.getText()); 
editor.putInt("female", female.getText()); 
editor.commit(); 

Daten aus Präferenz Abrufen nach setContentView(R.layout.main);

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null); 
if (restoredText != null) { 
    String place = prefs.getString("place" null); 
    String male = prefs.getString("male", null); 
    String female = prefs.getString("female", null); 
} 
Verwandte Themen