Autore Topic: problema con int ++ e int--  (Letto 509 volte)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
problema con int ++ e int--
« il: 11 Ottobre 2011, 06:32:17 CEST »
0
eccomi con un'altro problema che mi sta facendo scervellare..
ho una pagina con una textview che mostra un testo preso da string.xml.
devo mettere 2 imagebutton che mi permettano di scorrere al testo successivo o al testo precedente..
io ho fatto cosi:
Codice (Java): [Seleziona]
btavanti.setOnClickListener(new OnClickListener(){
        int clickavanti = (Integer.parseInt(strText));
        String prefissoc = ("bcar");
public void onClick(View v) {
        clickavanti++;
        String unione = ("bcar"+Integer.toString(clickavanti));
        int linkav =  getResources().getIdentifier(unione, "string",getPackageName());// trasforma la stringa in int per poterla usare come setText
        textbarzellette.setText(getString(linkav));    

}});

btindietro.setOnClickListener(new OnClickListener(){
        int clickindietro = (Integer.parseInt(strText));
public void onClick(View v) {

        clickindietro--;
        String unione2 = ("bcar"+Integer.toString(clickindietro));
        int linkind =  getResources().getIdentifier(unione2, "string",getPackageName());// trasforma la stringa in int per poterla usare come setText
        textbarzellette.setText(getString(linkind));   


}});
se io clicco sempre avanti o sempre indietro, lo script funziona bene..ma se clicco una volta avanti e una volta indietro, mi salta le pagine perchè i contatori tengono in memoria i click precedenti..
come posso fare a fare in modo che cliccando sul bottone 'indietro', mi scenda di uno il contatore 'clickavanti' ?
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:problema con int ++ e int--
« Risposta #1 il: 11 Ottobre 2011, 08:19:22 CEST »
0
Non ho capito come mai hai due counter, se alla fine il "conto" da tenere è uno solo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Re:problema con int ++ e int--
« Risposta #2 il: 11 Ottobre 2011, 09:16:53 CEST »
0
fai integer.parseInt di un testo ok,
ma non ci fai vedere cosa c'è nel testo,
secondo me l'errore è dovuto al fatto che nel testo non ci sono solo cifre

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:problema con int ++ e int--
« Risposta #3 il: 11 Ottobre 2011, 13:32:20 CEST »
0
i 2 counter li ho perche' e' la prima volta che uso counter..e non avendo trovato in rete nessuna guida per i counter, ho creato di testa mia...e deduco di aver creato male :D


il parseint di 'strText' e' un numero che puo' essere da 1 a 115, questo dipende da tutt'altro...comunque e' solo un numero senza nessuna lettera.

riuscite a darmi una dritta su come utilizzare un counter unico per entrambi i pulsanti?
intanto vi chiedo anche se sul counter e' possibile impostare un numero massimo e un numero minimo (da 1 a 115)..purtroppo in rete e' poco trattato questo argomento :(
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline dessorry

  • Utente normale
  • ***
  • Post: 230
  • Who lived hoping died craping
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Play Store ID:
    dessorry
  • Sistema operativo:
    Windows, Ubuntu, Kubuntu
Re:problema con int ++ e int--
« Risposta #4 il: 11 Ottobre 2011, 14:03:23 CEST »
0
semplicemente perchè un counter è una variabile intera
ti basta dichiararla in un pezzo comune di codice per vederla in entrambe le funzioni

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:problema con int ++ e int--
« Risposta #5 il: 11 Ottobre 2011, 18:50:24 CEST »
0
il problema e' che il numero del counter mi arriva da un'altra activity..e non riesco a farla funzionare dalla parte comune :(
ti metto l'activity completa, cosi magari riesci a capire meglio..perche' io ormai le ho provate tutte..ma purtroppo le mie conoscenze sono ancora molto basse.
Codice (Java): [Seleziona]
public class barze extends Activity {


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.barzellette);
final TextView textbarzellette = (TextView) findViewById(R.id.textbarzellette);
final Intent intent=getIntent(); // l\'intent di questa activity
final ImageButton btavanti=(ImageButton)findViewById(R.id.btavanti);
final ImageButton btindietro=(ImageButton)findViewById(R.id.btindietro);

Intent intentricevi=getIntent();
final String strText = intentricevi.getStringExtra(getPackageName()+".stringa scelta 1"); // prende la stringa inviata dall'activity carabinieri
String textI = ("bcar")+ (strText);
int textId =  getResources().getIdentifier(textI, "string",getPackageName());// trasforma la stringa in int per poterla usare come setText
textbarzellette.setText(getString(textId)); // imposta il setText dalla stringa int


btavanti.setOnClickListener(new OnClickListener(){
        int clickavanti = (Integer.parseInt(strText));
        String prefissoc = ("bcar");
public void onClick(View v) {
        clickavanti++;
        String unione = ("bcar"+Integer.toString(clickavanti));
        int linkav =  getResources().getIdentifier(unione, "string",getPackageName());// trasforma la stringa in int per poterla usare come setText
        textbarzellette.setText(getString(linkav));            
}});

btindietro.setOnClickListener(new OnClickListener(){
        int clickindietro = (Integer.parseInt(strText));
public void onClick(View v) {
        clickindietro--;
        String unione2 = ("bcar"+Integer.toString(clickindietro));
        int linkind =  getResources().getIdentifier(unione2, "string",getPackageName());// trasforma la stringa in int per poterla usare come setText
        textbarzellette.setText(getString(linkind));   

}});   
}}
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:problema con int ++ e int--
« Risposta #6 il: 12 Ottobre 2011, 01:16:40 CEST »
+1
Come diceva bradipao, perchè hai due contatori, soprattutto perchè li hai dichiarati dentro l'interfaccia OnClickListener ?
Prova a dichiarare un unico counter a livello di classe (prima dell'onCreate...)

Codice (Java): [Seleziona]
[...]
private int counter ;
@Override
public void onCreate(Bundle b){
    super.onCreate(b);
    [...]
    final String strText = intentricevi.getStringExtra(getPackageName()+".stringa scelta 1"); // prende la stringa inviata dall'activity carabinieri
    counter = (Integer.parseInt(strText));
    [...]
}

Dopodichè gestisci l'incremento e il decremento nei rispettivi listener.

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:problema con int ++ e int--
« Risposta #7 il: 12 Ottobre 2011, 11:44:36 CEST »
0
ecco dove sbagliavo...cercavo di dichiarare il valore del counter nella classe, ma mi risultava impossibile visto che il valore viene trovato solo all'oncreate..
come mi hai mostrato tu funziona perfettamente, grazie mille..avevo fatto migliaia di prove per cercare di trovare una soluzione..e non avevo pensato a dichiarare l'integer senza valore :(

mi sai dire anche se sul counter e' possibile impostare un numero massimo e un numero minimo (da 1 a 115)..
« Ultima modifica: 12 Ottobre 2011, 13:50:09 CEST da frecciak »
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!