CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Varioflex con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 35 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Contatore click associato ad integer Array

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2011
    Località
    Nibiru
    Messaggi
    5

    Ringraziamenti
    5
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Contatore click associato ad integer Array

    Come da titolo sto creando il mio primo programma android. Si tratta di un seplice bottone che conta i click del mouse. Accanto al contatore dovrei avere la descrizione contenuta nella stringa output_label nella cartella values. Nel caso il contatore segnasse valori contenuti nelle stringhe Array o Integer Array (anche loro in values)la descrizione output_label deve cambiare... non capisco però quale comando usare dopo onClick(View v)...

    Main:

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent">
    	<TextView android:layout_width="fill_parent" android:id="@+id/output"
    		android:layout_height="wrap_content" android:text="@string/hello" />
    	<Button android:text="@string/button_label" android:id="@+id/pressButton"
    		android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    </LinearLayout>

    contenuto text.xml nella cartella values:

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_title">Button Counter</string>
        <string name="button_label">Press</string>
        <string name="output_label">Numero Click:</string>
        <string-array name="myArray">
        <item>Valore1</item>
        <item>Valore2</item>
        <item>Valore3</item>
        <item>Valore4</item>
        <item>Valore5</item>
        <item>Valore6</item>
        <item>Valore7</item>
        <item>Valore8</item>
        <item>Valore9</item>
        <item>Valore10</item>
        <item>Valore11</item>
        </string-array>
        
        <integer-array name="primeArray">
        <item>2</item>
        <item>3</item>
        <item>5</item>
        <item>7</item>
        <item>11</item>
        </integer-array>
        
    </resources>

    contenuto dell'Activity:

    codice:
    package it.apogeo.android.cap03.helloandroidadt;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.content.res.Resources;
    
    
    public class HelloAndroidADT2Activity extends Activity {
    	
    	//Inizializzo contatore
    	private int counter=0;
    	
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
        	
        	//Riferimento ad android.content.res.Resource
        	Resources res = getResources();
        	
            super.onCreate(savedInstanceState);        
            setContentView(R.layout.main);
            
            //Riferimento al Button
            Button pressButton = (Button) findViewById(R.id.pressButton);
            
            //Riferimento alla TextView e agli array da associare al contatore
            final TextView outpuView = (TextView) findViewById(R.id.output);        
            final String outputLabel = getResources().getString(R.string.output_label);
            final int[] primeNumbers = getResources().getIntArray(R.array.primeArray);
            final String[] labels = getResources().getStringArray(R.array.myArray);
            
            
         // Ascoltiamo l'evento di pressione associato al pulsante
         // Quì ho il problema, invece di Click # vorrei l'outputLabel...
            pressButton.setOnClickListener(new OnClickListener() {
            	public void onClick(View v) {
            		outputView.setText("Click # " +counter++);
    				
            	}
            });
        }
    }


    Sono nuovo nel campo android, accetto qualsiasi consiglio/suggerimento...

  2.  
  3. #2
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    dov'è il problema? sei arrivato fino qui, ora basta un pò di java. Hai string e array di string e un contatore intero. usa il contatore intero per scegliere la stringa da mostrare tipo (scritto a caso)

    codice:
    if (counter < 11) {
    outputView.setText(labels[counter++]);
    } else {
    outputView.setText("Click # " + counter++);
    }

  4. Il seguente Utente ha ringraziato Jordano per il post:

    TestMan (02-07-11)

  5. #3
    Baby Droid


    Registrato dal
    Jun 2011
    Località
    Nibiru
    Messaggi
    5

    Ringraziamenti
    5
    Ringraziato 0 volte in 0 Posts
    Talking

    Ok perfetto... non capisco, però, perchè hai incrementato il contatore prima con [counter++] e poi con + counter++
    Credevo significasse la stessa cosa ma se scambio le sintassi eclipse non me lo accetta!!

  6. #4
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da TestMan Visualizza il messaggio
    Ok perfetto... non capisco, però, perchè hai incrementato il contatore prima con [counter++] e poi con + counter++
    Credevo significasse la stessa cosa ma se scambio le sintassi eclipse non me lo accetta!!
    counter++ PRIMA restituisce il valore corrente di counter e poi lo incrementa di 1.
    In questo modo nell'istruzione
    outputView.setText(labels[counter++]);
    il counter parte da 0, e quindi stampa prima la labels[0] e poi il contatore passa al valore 1, in modo che al prossimo giro si stampi labels[1].

    Nell'altra riga:
    outputView.setText("Click # " + counter++);

    Sta semplicemente concatenando la stringa "Click # " con il valore di counter (che dopo la concatenazione verrà comunque incrementato).
    La mia app:
    AstroPix

  7. Il seguente Utente ha ringraziato Orochi per il post:

    TestMan (04-07-11)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy