Autore Topic: Crash Button  (Letto 387 volte)

Offline TheCat

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 11.04
Crash Button
« il: 12 Dicembre 2011, 15:39:01 CET »
0
Ciao a tutti,
mi ritrovo ad avere il seguente problema, definisco un bottone tramite il documento di layout xml e successivamente voglio creare un listener che risponda al rispettivo click del bottone stesso, riporto il codice di seguito, sia xml che android:

XML

Codice (XML): [Seleziona]
<Button
           android:id="@+id/button_visualizza"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="bottom"
           android:layout_weight="1"
           android:text="Visualizza" />

JAVA

private Button button_visualizza = null;
Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState)
        {super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
this.button_visualizza = (Button) findViewById(R.id.button_visualizza);
                if(button_visualizza == null)
                {
                        Log.d("bottone","NULLO");
                        Log.d("bottone",""+R.id.button_visualizza);
                }
                button_visualizza.setOnClickListener(new OnClickListener() {
                       
                        public void onClick(View v)
                        {
                                Toast.makeText(getApplicationContext(), "Visualizza", Toast.LENGTH_LONG).show();
                        }
                });

puntualmente il bottone è nullo, come se la metodologia R.id.button_visualizza non riuscisse a funzionare e non comprendo proprio il motivo... qualche idea di cosa potrebbe essere a causare il malfunzionamento?


Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Crash Button
« Risposta #1 il: 12 Dicembre 2011, 15:45:28 CET »
0
Credo che questo sia errato:
Codice (Java): [Seleziona]
private Button button_visualizza = null;
usa solo
Codice (Java): [Seleziona]
private Button button_visualizza;
Eventualmente, fai un debug passo passo per vedere se la tua variabile nasce correttamente. Alcune cose fatte nell'OnCreate vengono allocate solo quando c'è il focus, ma non so se vale anche per la verifica che fai del button, non l'ho mai fatto così.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Crash Button
« Risposta #2 il: 12 Dicembre 2011, 15:52:31 CET »
0
Ciao! Potrebbe essere il solito problema di eclipse con l'aggiornamento degli id nel file R.
Prova a:
- Cliccare sul menù project/clean/ selezionare il nome del tuo progetto e cliccare su ok.
- Modificare il file di layout in cui c'è il pulsante aggiungendo uno spazio e salvarlo, in modo da forzare eclipse ad aggiornare il file R.

:)

Offline TheCat

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 11.04
Re:Crash Button
« Risposta #3 il: 12 Dicembre 2011, 15:58:07 CET »
0
Niente Verandi... sempre il solito problema... NullPointerException..

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Crash Button
« Risposta #4 il: 12 Dicembre 2011, 16:07:02 CET »
0
Il codice mi sembra tutto corretto. L'unico motivo poteva essere quello oppure il fatto che il button non sia nel file di layout main.xml.
Il logcat punta alla riga del setOnClickListener?

Offline TheCat

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 11.04
Re:Crash Button
« Risposta #5 il: 12 Dicembre 2011, 16:11:15 CET »
0
Ok, ho risolto, il problema risiedeva nel fatto che avevo due layout uno per la modalità portrait e il secondo per la modalità landscape e in quest'ultimo non avevo aggiornato l'xml in maniera corretta quindi non riusciva a trovare la risorsa corretta.

Credo comunque che il problema che tu, Verandi, facevi notare incideva lo stesso  ;-) grazie mille e clicco su Risolto.