Autore Topic: Salvare variabile con Shared Preferences!  (Letto 446 volte)

Offline vinciuks98

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Salvare variabile con Shared Preferences!
« il: 10 Marzo 2014, 14:37:59 CET »
0
Giorno community!
Sono arrivato al tragico momento in cui ti rendi conto che non puoi continuare a programmare la tua app poichè i progressi raggiunti nel gioco non vengono salvati, dopo svariate ore e ricerche non so più dove sbattere la testa, ho provato vari esempi, ma invani, siete la mia ultima spiaggia. Qui vi posto di seguito il codice java e l'xml, qualche buona anima che può modificare il codice in modo che si salvi SOLO la variabile soldi ??? In modo tale che quando riapro l'app la variabile resti salvata?  :-(  Preferirei che non mi incollaste codici poichè non so in quale parte inserirli, ma se potete riuscite a modificare il mio codice? Da poco mi sono gettato sulla programmazione android e ho ancora molto da imparare ! Help!

Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.os.CountDownTimer;
public class App2Activity extends Activity {
        TextView TextView2;
        Button button;
        TextView clickfast;
        TextView obiettivo;
        int soldi = 0;
        TextView TextView3;
        private RatingBar ratingBar;
        int counter = 0;
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main2);
        TextView2 = (TextView)this.findViewById(R.id.textView2);
        TextView3 = (TextView)this.findViewById(R.id.textView3);
        obiettivo = (TextView)this.findViewById(R.id.textView4);
        ratingBar = (RatingBar) findViewById(R.id.ratingBar1);
        clickfast = (TextView)this.findViewById(R.id.textView1);
        button = (Button)this.findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
                public void onClick(View arg0) {
                        counter = counter + 1;
                        if(counter == 100) {
                               
                                clickfast.setText("Win! Win!");
                        }
                        TextView2.setText("Click Eseguiti"+counter);
               
                       
                       
                        new CountDownTimer(30000, 1000) {

                             public void onTick(long millisUntilFinished) {
                                 TextView3.setText("Da ora hai 30 secondi!");
                             }

                             public void onFinish() {
                                 TextView3.setText("Tempo Finito!");
                                 if(counter == 350){
                                         obiettivo.setText("GOD!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(5);
                                 }
                                 if(counter == 330){
                                         obiettivo.setText("Master!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(5);
                                 }
                                 if(counter >= 300){
                                         obiettivo.setText("Complimenti!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(5);
                                 }
                                 if(counter >= 250){
                                         obiettivo.setText("Bravissimo!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(4);
                                 }
                                 if(counter >= 200){
                                         obiettivo.setText("Bravo!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(3);
                                 }
                                 if(counter >= 150){
                                         obiettivo.setText("Buono...");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(2);
                                 }
                                 if(counter >= 80 ){
                                         obiettivo.setText("Scarso...");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(1);
                                 }
                                 if(counter >= 50){
                                         obiettivo.setText("Bleah!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(0);
                                 }
                                 if(counter >= 100){
                                         obiettivo.setText("Obbiettivo completato!");
                                         ratingBar.setVisibility(View.VISIBLE);
                                         ratingBar.setRating(4);
                                 }
                                 button.setOnClickListener(new OnClickListener() {
                                         public void onClick(View arg0){
                                                 counter = counter + 0;
                                         }
                                 });
                             }
                          }.start();
                         
                         
               
               
                }
        });
        }
}

xml:
Codice (Java): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/aiuto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    android:background="@drawable/bg" >
       
    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_centerHorizontal="true"
        android:text="!Clicca!Clicca!" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="20dp"
        android:layout_height="62dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="22dp"
        android:text="Click Fast"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="50dp" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:text="Il timer partirà al primo click!"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="54dp"
        android:text="Click Eseguiti: 0"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView3"
        android:layout_centerHorizontal="true"
        android:text="Obiettivo: Raggiungi 100 Click!"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView4"
        android:layout_centerHorizontal="true"
        android:max="10"
        android:visibility="invisible" />

</RelativeLayout>
PS: Visto che devo salvare solo una variabile non conviene usare Shared Preferences?
 O:-) O:-) O:-) O:-)

Offline FrancescoAndroid

  • Utente junior
  • **
  • Post: 69
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    GiMiSiS Interactive
  • Sistema operativo:
    Android 2.3.3
Re:Salvare variabile con Shared Preferences!
« Risposta #1 il: 11 Marzo 2014, 15:19:26 CET »
0
Usare le shared è molto semplice. Vanno introdotte all'iterno dell' activity anche se io ti consiglio di farti una classe di util da richiamare e riutilizzare all'occorrenza. Presta attenzione al fatto che non tutti i metodi delle shared possono essere usati per le vecchie versioni.

SharedPreferences | Android Developers
Android Shared Preferences Tutorial