2016-09-02 3 views
0

Ich bin neu in Java. Ich habe einen Zähler gemacht, der nach oben geht, wenn der Benutzer einen Knopf hält. Ich möchte, dass die App mit dem int-Wert beginnt, von dem sie noch übrig ist. Ich weiß SharedPreference ist der Weg zu gehen, aber ich habe keine Ahnung, wie man es benutzt. Ich bin mir nicht sicher, wo ich welchen Teil von SharedPreference einfügen soll. Vielen Dank.Wert von Int speichern (Gemeinsame Präferenz)

public class MainActivity extends AppCompatActivity { 
Button button; 
int count = 1; 
TextView text; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    button = (Button) findViewById(R.id.button); 
    text = (TextView) findViewById(R.id.textView); 

    button.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View view) { 
      count++; 
      text.setText(String.valueOf(count)); 
     return false; 
     } 
    }); 

} 

}

Antwort

0

Fügen Sie die folgende Funktion, um Ihre Aktivität

public int getValue(String key) { 
     SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
     int value = sharedPref.getInt(key, 0); 
     return value; 
} 
public void saveValue(String key, int value) { 
     SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
     editor.putInt(key, value); 
     editor.commit(); 
} 

Einige Code hinzugefügt in Ihrem onCreate() Methode

final String key = "somekey"; 
count = getValue(key); //get value from sharedPreference 
button = (Button) findViewById(R.id.button); 
text = (TextView) findViewById(R.id.textView); 
text.setText(String.valueOf(count)); // set it first 
button.setOnLongClickListener(new View.OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View view) { 
     count++; 
     saveValue(key,count); 
     text.setText(String.valueOf(count)); 
     return false; 
    } 
}); 
0

Versuchen Drehen

int count = 1; 

in

static int count = 1; 

Ich bin auch ein Java noobie etwas so dass diese oder auch nicht funktionieren.

0

Sie können es so machen, count in SharedPreference sparen, wenn die Aktivität zerstören und den Wert von SharedPreference lesen, wenn Sie es schaffen:

public class MainActivity extends AppCompatActivity { 
    Button button; 
    int count = 1; 
    TextView text; 
    SharedPreferences sh; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     button = (Button) findViewById(R.id.button); 
     text = (TextView) findViewById(R.id.textView); 

     sh = getSharedPreferences("sh_name", MODE_PRIVATE); 
     count = sh.getInt("count", 1); 

     button.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View view) { 
       count++; 
       text.setText(String.valueOf(count)); 
       return false; 
      } 
     }); 

    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     sh.edit().putInt("count", count).apply(); 
    } 
} 
Verwandte Themen