Ich bin neu in der Entwicklung von Android-Anwendung und derzeit entwickle ich eine Android-Software, die Benutzer benötigen, um eine Menge Daten einzugeben und speichern Sie es auf sharedPreferences
als Datenbank. Hier ist Beispiel meiner Codierung:Aufruf Satz nach Eingabe
public static final String DEFAULT= "no data found";
Dann:
protected void storeData(SharedPreferences.Editor editor, String key, EditText et) {
String content = et.getText().toString();
if ("".equals(content)) {
editor.remove(key);
} else {
editor.putString(key, content);
}
}
Zum Speichern von Benutzereingaben:
public void OnClickSave(){
button17=(Button)findViewById(R.id.button17);
button17.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
name = (EditText) findViewById(R.id.name);
gender = (EditText) findViewById(R.id.gender);
age = (EditText) findViewById(R.id.age);
fruit = (EditText) findViewById(R.id.fab_fruit);
music = (EditText) findViewById(R.id.fab_music);
SharedPreferences sharedPreferences = getSharedPreferences("Database", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
storeData(editor,"name", name);
storeData(editor,"gender", gender);
storeData(editor,"age", age);
storeData(editor,"fruit", fruit);
storeData(editor,"music", music);
editor.commit();
Toast.makeText(MainActivity7.this, "Data was saved!!!", Toast.LENGTH_SHORT).show();
}
}
);
}
Für das Laden der Daten habe ich es so etwas wie dieses:
public void OnClickLoad(){
button38=(Button)findViewById(R.id.button38);
button38.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = getSharedPreferences("Database", Context.MODE_PRIVATE);
String name = sharedPreferences.getString("name", DEFAULT);
String gender = sharedPreferences.getString("gender", DEFAULT);
String age = sharedPreferences.getString("age", DEFAULT);
String fruit = sharedPreferences.getString("fruit", DEFAULT);
String music = sharedPreferences.getString("music", DEFAULT);
}
}
);
AlertDialog.Builder a_builder = new AlertDialog.Builder(MainActivity12.this);
a_builder.setMessage(
"Data 1 name is :"+ name + "\n"+
"Data 1 gender is :"+ gender + "\n"+
"Data 1 age is :"+ age + "\n"+
"Data 1 favorite fruit is :"+ fruit + "\n"+
"Data 1 favorite music is :"+ music + "\n"+
)
.setCancelable(false)
.setPositiveButton("Proceed", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.setNegativeButton("Return", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
;
AlertDialog alert= a_builder.create();
alert.setTitle("Checking");
alert.show();
}
Als ich bereits den Sente nce im Builder, so, wenn der Benutzer nicht zu der Frage beantwortet hat, wird der Ausgang worden wie
Data 1 name is : Sample1
Data 1 gender is : male
Data 1 age is : no data found
Data 1 favorite fruit is : apple
Data 1 favorite music is : no data found
ich wissen wollen, ob es eine alternative Art und Weise ist, so dass, wenn Benutzer keine Eingabe irgendetwas, die entsprechenden Sätze werden nicht angezeigt, wie unten:
Data 1 name is : Sample1
Data 1 gender is : Male
Data 1 favorite fruit is : apple
Dieses Beispiel der Codierung ist, in meiner Anwendung erforderlich ich Benutzer zur Eingabe von 20-30 Daten. Vielen Dank im Voraus für alle, die helfen wollen. * Es tut mir leid, wenn der Titel Verwirrung stiftet, weil ich nicht sicher bin, worauf es sich beziehen sollte.