Autore Topic: problema con un contatore  (Letto 2003 volte)

Offline raffaele96

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
problema con un contatore
« il: 12 Giugno 2012, 10:50:23 CEST »
0
allora io ho creato un contatore e due pulsanti, uno per aumentare il contatore e uno per diminuirlo. poi ho impostato che a ogni valore del contatore corrisponde una frase, però non so perchè ma non funziona qualcuno mi può aiutare?
Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class ProvaActivity extends Activity {
    /** Called when the activity is first created. */
        int contatore = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button avanti = (Button) findViewById(R.id.avanti);
        Button indietro = (Button) findViewById(R.id.indietro);
        TextView frase = (TextView) findViewById(R.id.frase);
        avanti.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                       
                        contatore++;
                       
                }
        });
        indietro.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                       
                        contatore--;
                       
                }
        });
        switch(contatore)
        {
        case 0:
                frase.setText("ciao");
                break;
        case 1:
                frase.setText("ciaomondo");
                break;
        case 2:
                frase.setText("ecc.");
                break;
        }
    }
}
allego anche xml non so se può servire
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

    <TextView
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text=""
       android:id="@+id/frase"/>

    <Button
       android:id="@+id/avanti"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="avanti" />

    <Button
       android:id="@+id/indietro"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="indietro" />

</LinearLayout>
non so se è la sezione giusta, nel caso sia sbagliata mi scuso in anticipo.

Offline Vlad

  • Utente normale
  • ***
  • Post: 271
  • Respect: +16
    • Github
    • Google+
    • vmihalachi
    • vmihalachi
    • Mostra profilo
    • vmihalachi.com
  • Dispositivo Android:
    Samsung galaxy s2 | Samsung galaxy tab 7
  • Play Store ID:
    Vlad Mihalachi
  • Sistema operativo:
    Windows 8
Re:problema con un contatore
« Risposta #1 il: 12 Giugno 2012, 10:57:42 CEST »
0
Perche tu prendi il numero che corrisponde al contatore nel onCreate quindi solo quando viene avviata l'applicazione ! invece dovresti prenderlo a ogni click dei pulsanti  :-)
« Ultima modifica: 12 Giugno 2012, 10:59:13 CEST da Vlad »

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:problema con un contatore
« Risposta #2 il: 12 Giugno 2012, 11:38:44 CEST »
0
Crea un metodo che fa lo switch e mettilo in entrambi onClick dei tuoi due bottoni.
I numeri contano molto di più del seme.

Offline raffaele96

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
Re:problema con un contatore
« Risposta #3 il: 12 Giugno 2012, 12:02:28 CEST »
0
sono nuovo in java mi potete far vedere il codice che dovrei inserire?

Offline Vlad

  • Utente normale
  • ***
  • Post: 271
  • Respect: +16
    • Github
    • Google+
    • vmihalachi
    • vmihalachi
    • Mostra profilo
    • vmihalachi.com
  • Dispositivo Android:
    Samsung galaxy s2 | Samsung galaxy tab 7
  • Play Store ID:
    Vlad Mihalachi
  • Sistema operativo:
    Windows 8
Re:problema con un contatore
« Risposta #4 il: 12 Giugno 2012, 13:36:21 CEST »
0
Codice (Java): [Seleziona]
public class ProvaActivity extends Activity {
    /** Called when the activity is first created. */
        int contatore = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button avanti = (Button) findViewById(R.id.avanti);
        Button indietro = (Button) findViewById(R.id.indietro);
        avanti.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                       
                        contatore++;
                        controllo();
                       
                }
        });
        indietro.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                       
                        contatore--;
                        controllo();
                       
                }
        });
       
    }
public void controllo()
{
TextView frase = (TextView) findViewById(R.id.frase);
 switch(contatore)
        {
        case 0:
                frase.setText("ciao");
                break;
        case 1:
                frase.setText("ciaomondo");
                break;
        case 2:
                frase.setText("ecc.");
                break;
        }
}
}

Offline raffaele96

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
Re:problema con un contatore
« Risposta #5 il: 12 Giugno 2012, 15:06:43 CEST »
0
grazie :-)

Offline raffaele96

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
Re:problema con un contatore
« Risposta #6 il: 14 Giugno 2012, 12:55:38 CEST »
0
ma se voglio salvare il caso??
mi spiego meglio se quando chiudo l'app sto al caso 23 quando riavvio l'app riparto dal caso 0. io vorrei far in modo che al riavvio si riparte dal caso 23. io ho provato così
Codice (Java): [Seleziona]
protected void onSaveInstanceState(Bundle outState) {
                super.onSaveInstanceState(outState);
                // Salviamo lo stato del contatore
                outState.putInt("ciao", ciao);
               
        }

        protected void onRestoreInstanceState(Bundle savedInstanceState) {
                super.onSaveInstanceState(savedInstanceState);
                ciao = savedInstanceState.getInt("ciao");
                controllo();
               
ma non funziona, l'unica cosa che ho risolto è che se vado il modalità landscape non riparte da 0 qualcuno mi può aiutare?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:problema con un contatore
« Risposta #7 il: 14 Giugno 2012, 13:44:53 CEST »
0
Devi interecettare l'onDestroy e li dentro salvare il valore nelle shared preferences.

Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:problema con un contatore
« Risposta #8 il: 14 Giugno 2012, 14:31:42 CEST »
0
Devi interecettare l'onDestroy e li dentro salvare il valore nelle shared preferences.

Non sarebbe meglio salvare nell'onPause?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:problema con un contatore
« Risposta #9 il: 14 Giugno 2012, 17:46:55 CEST »
0
Non sarebbe meglio salvare nell'onPause?

Perchè nell'onPause? Al massimo massimo lo metterei nell'onStop...

Offline raffaele96

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
Re:problema con un contatore
« Risposta #10 il: 14 Giugno 2012, 21:56:09 CEST »
0
mi state un pò confondendo, qual'è la migliore soluzione??

Offline agenio

  • Utente junior
  • **
  • Post: 77
  • Respect: +11
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Moto G
  • Sistema operativo:
    Windows 8.1
Re:problema con un contatore
« Risposta #11 il: 14 Giugno 2012, 21:56:28 CEST »
0
Mi ricordo di aver letto da qualche parte nella documentazione, che google consigliava di salvare nell'onPause.

Poi se si cerca su google "save data onDestroy vs onPause" in tanti consigliano di salvare nell'onPause ... es:
http://stackoverflow.com/questions/9186769/android-save-game-state-in-onpause-or-ondestroy

Offline raffaele96

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
Re:problema con un contatore
« Risposta #12 il: 15 Giugno 2012, 17:07:54 CEST »
0
non funziona  :-(

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:problema con un contatore
« Risposta #13 il: 15 Giugno 2012, 17:47:27 CEST »
0
Mi dispiace ma se non posti codice o errori che ottieni non possiamo aiutarti.

Offline pupi93

  • Utente junior
  • **
  • Post: 54
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos
  • Sistema operativo:
    Ubuntu 10.04
Re:problema con un contatore
« Risposta #14 il: 16 Giugno 2012, 17:58:28 CEST »
0
Guarda qui: [facile] Semplice esempio di Shared Preferences - Android Developers Italia
Dice come salvare le informazioni anche se l'app è stata chiusa.