Autore Topic: Riconoscere il pulsante premuto  (Letto 1220 volte)

Offline maro

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Htc Evo 3D, Hp Touchpad
  • Sistema operativo:
    Windows 7
Riconoscere il pulsante premuto
« il: 20 Marzo 2012, 20:57:23 CET »
0
Salve,

prima di esporvi il mio problema ne approfittavo per salutarvi :)

comunque ecco il mio problema, nel main.xml ho creato tanti pulsanti quanti sono le lettere dell'alfabeto e nella activity le ho registrate presso un solo ascoltatore, come posso capire senza ricorrere al caso switch/case? a me servirebbe arrivare a capire il nome del pulsante premuto.

Inizialmente pensavo che con
Codice (Java): [Seleziona]
public void onClick(View v) {
   press.setText(v.getId());   
}
si risolvesse ma alla pressione dei pulsanti mi scrive solo false.

come posso fare?

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Riconoscere il pulsante premuto
« Risposta #1 il: 20 Marzo 2012, 21:54:30 CET »
0
Ciao Maro,
se hai tanti pulsanti allora devi avere altrettanti onClickListener (se ognuno fa una cosa diversa).
Perciò devi registrare dei Listener che ti permettono di eseguire del codice alla pressione del relativo tasto
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline pivoide

  • Utente junior
  • **
  • Post: 133
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy tab 10.1
  • Play Store ID:
    codicerosso
  • Sistema operativo:
    Ubuntu 11.04
Re:Riconoscere il pulsante premuto
« Risposta #2 il: 21 Marzo 2012, 00:14:36 CET »
0
Se ti basta il pulsante premuto  imposta nell' xml la proprietà contentDescription con il valore di interesse e la recuperi con getContentDescription. In alternativa se le info sonos trutturate o diverse guardati il setTag e getTag
Odio l'inglese e per un informatico non è il massimo

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Riconoscere il pulsante premuto
« Risposta #3 il: 21 Marzo 2012, 08:19:03 CET »
0
Perchè non vuoi usare lo swith/case?

Codice (Java): [Seleziona]
public void onClick(View v) {
switch(v.getId())
{
    case R.id.button_a_id:
    // handle button A click;
       break;
    case R.id.button_b_id:
    // handle button B click;
       break;
    default:
       throw new RuntimeException("Unknow button ID");
}
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Riconoscere il pulsante premuto
« Risposta #4 il: 21 Marzo 2012, 08:40:27 CET »
0
Se per nome intendi la label del bottone prova così:

Codice (Java): [Seleziona]
public void onClick(View v) {
    if (v instanceof Button) {
        Button b = (Button) v;
        Toast.makeText(this, "Button label: " + b.getText(), Toast.LENGTH_SHORT).show();
    }
}
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline maro

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Htc Evo 3D, Hp Touchpad
  • Sistema operativo:
    Windows 7
Re:Riconoscere il pulsante premuto
« Risposta #5 il: 21 Marzo 2012, 09:18:17 CET »
0
Se per nome intendi la label del bottone prova così:

Codice (Java): [Seleziona]
public void onClick(View v) {
    if (v instanceof Button) {
        Button b = (Button) v;
        Toast.makeText(this, "Button label: " + b.getText(), Toast.LENGTH_SHORT).show();
    }
}

Ciao Maro,
se hai tanti pulsanti allora devi avere altrettanti onClickListener (se ognuno fa una cosa diversa).
Perciò devi registrare dei Listener che ti permettono di eseguire del codice alla pressione del relativo tasto

non mi conviene perchè sarebbe troppo dispendioso in termini di codice e memoria (per un numero di pulsanti come nel mio progetto).

Se ti basta il pulsante premuto  imposta nell' xml la proprietà contentDescription con il valore di interesse e la recuperi con getContentDescription. In alternativa se le info sonos trutturate o diverse guardati il setTag e getTag
grazie con il tuo metodo sono riuscito a fare proprio quello che speravo :)