Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema con variabile

  1. #1

    Problema con variabile

    package cap3.ClickCount;

    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 ClickCount extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    Button pressButton = (Button) findViewById(R.id.pressButton);
    final TextView outputView = (TextView) findViewById(R.id.output);
    pressButton.setOnClickListener (new OnClickListener(){
    public void onClick(View v){
    int c=0;
    outputView.setText("Click # "+ c++);
    }
    });
    }
    }

    questo è il mio programma che dovrebbe contare i click su un bottone per android solo che la variabile c mi da problemi, messa così si reinizializa ogni volta che il bottone viene premuto e il programma da sempre 0 click, vorrei sapere in che modo passare il parametro c ... grz in anticipo...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Semplicemente dichiarando c all'esterno del metodo onClick() (in modo che la variabile sia "globale" per l'istanza della classe e non locale al metodo).

    codice:
    public class ClickCount extends Activity {
       private int c=0;   // <-- va dichiarata qui
    
       /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
    
          setContentView(R.layout.main);
    
          Button pressButton = (Button) findViewById(R.id.pressButton);
          final TextView outputView = (TextView) findViewById(R.id.output);
          pressButton.setOnClickListener (new OnClickListener(){
             public void onClick(View v){
                /* qui non c'è più la dichiarazione di "c" */
                outputView.setText("Click # "+ c++);
             }
         });
       }
    }
    Stessa cosa andrebbe fatta col pulsante: dichiarato fuori dal metodo onCreate() e istanziato al suo interno.

    PS: Usa i tag CODE per il posting del codice, come espressamente richiesto dal regolamento interno (punto 6).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    grz mille scusa per il code non me ne ero accorto, grz grz

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.