Autore Topic: problema nel abilitare un bottone setEnable(true)  (Letto 581 volte)

Offline Greg

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
problema nel abilitare un bottone setEnable(true)
« il: 28 Marzo 2011, 17:55:47 CEST »
0
Salve ho un problema nel abilitare un bottone che ho disabilitato appena l'ho creato:
lo creo in una classe main
Codice (Java): [Seleziona]
 Button bottone = (Button) findViewById(R.id.bottone);
                   //disabilito inizialmente il bottone perchè non sono loggat
                   bottone.setEnabled(false);
e poi dopo nella classe login,quando tutto è andato a buon fine voglio sbloccarlo e faccio:
Codice (Java): [Seleziona]
 Button bottone = (Button) findViewById(R.id.bottone);
                   //abilito il bottone dopo il log
                   bottone.setEnabled(true);

ma mi dà degli errori: fatal error main java.lang null pointer exception
                        warn:  threadid=1 thread existing uncaught exception

come si riabilita un bottone forse sbaglio????
grazie

« Ultima modifica: 28 Marzo 2011, 17:58:16 CEST da Greg »

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 nel abilitare un bottone setEnable(true)
« Risposta #1 il: 28 Marzo 2011, 18:30:10 CEST »
0
Penso che la causa sia nel codice che non hai postato. A me capita ogni tanto questo genere di errore nei cambi di "scope" (la classe Login sa cos'è il bottone?).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Greg

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Re:problema nel abilitare un bottone setEnable(true)
« Risposta #2 il: 29 Marzo 2011, 00:03:39 CEST »
0
il layout è ben impostato nel setContentView, il bottone è quello esatto ho già controllato! :/

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 nel abilitare un bottone setEnable(true)
« Risposta #3 il: 29 Marzo 2011, 08:00:50 CEST »
0
Se puoi postare tutto il codice possiamo provare a capire.

Altrimenti lanci l'applicazione in debug e vai passo passo per trovare cosa diventa NULL e non dovrebbe.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Greg

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
Re:problema nel abilitare un bottone setEnable(true)
« Risposta #4 il: 29 Marzo 2011, 11:15:03 CEST »
0
Codice (Java): [Seleziona]
public class Login extends Activity{


        @Override
        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);
                setContentView(R.layout.login);

                // Recupero dati dei componenti EditText
                final EditText EditParkcard = (EditText) findViewById(R.id.codiceParkcard);
                final EditText EditCodicePin = (EditText) findViewById(R.id.codicePin);



                //bottone ENTRA        
                View.OnClickListener entra = new View.OnClickListener() {

                        public void onClick(View v) {

                                System.out.println("click!");

                                System.out.println("parkcard: "+EditParkcard.getText().toString()+" pin: "+EditCodicePin.getText().toString());

                                boolean output = new ClientWS().invoke(EditParkcard.getText().toString(),EditCodicePin.getText().toString());



                                //se i dati inseriti sono corretti
                                if(output){
                                        //----------------  toast
                                        Toast toast = Toast.makeText(Login.this,"dati inseriti correttamente!", Toast.LENGTH_SHORT);
                                        toast.setGravity(Gravity.CENTER, 0, 0);
                                        toast.show();


                                        //salvataggio dati di login all'interno di un file
                                        String FILENAME = "dati";
                                        String parkcard = EditParkcard.getText().toString();
                                        String pin = EditCodicePin.getText().toString();

                                        System.out.println("i dati vengono salvati in: "+getFilesDir());
                                        System.out.println("la lista dei file salvati: ");
                                        String[] listaFile = fileList();
                                        for(int i =0 ; i<listaFile.length ;i++){
                                                System.out.println(i+1+") "+listaFile[i]);
                                        }

                                        FileOutputStream fos = null;
                                        try {

                                                System.out.println("1)creazione apertura del file : ["+FILENAME+"]");
                                                fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);

                                        } catch (FileNotFoundException e) {
                                                System.out.println(" - errore creazione/apertura file! -");
                                                e.printStackTrace();
                                        }
                                        try {
                                                System.out.println("1)scrittura nel file : ["+FILENAME+"] del parkcard:"+parkcard+" e del pin:"+pin);
                                                fos.write(parkcard.getBytes());
                                                fos.write(pin.getBytes());

                                        } catch (IOException e) {
                                                e.printStackTrace();
                                                System.out.println(" - errore scrittura file! -");
                                        }
                                        try {
                                                System.out.println("1)chiusura del file : ["+FILENAME+"]");
                                                fos.close();
                                        } catch (IOException e) {
                                                System.out.println(" - errore chiusura file! -");
                                                e.printStackTrace();
                                        }



                                        //si devono abilitare i bottoni del MAIN: userInfo,inizioSosta,FineSosta,InfoParcheggio

System.out.println("- abilitazione bottoni in corso...");

                                        Button InizioSosta = (Button)findViewById(R.id.InizioSosta);
                                        InizioSosta.setEnabled(true);  //<= (((PROBLEMA))

                                        Button FineSosta = (Button)findViewById(R.id.FineSosta);
                                        FineSosta.setEnabled(true);

                                        Button UserInfo = (Button)findViewById(R.id.UserInfo);
                                        UserInfo.setEnabled(true);

                                        Button InfoParcheggio = (Button)findViewById(R.id.InfoParcheggio);
                                        InfoParcheggio.setEnabled(true);

                                        System.out.println("- abilitazione eseguita correttamente!!!");


                                        //se tutto è andato a buon fine si ritorna alla pagina main con i bottoni abilitati
                                        Intent ips = new Intent(Login.this, MainActivityTelepark.class);
                                        startActivity(ips);

                                }
                                else{
                                        //----------------  toast
                                        Toast toast = Toast.makeText(Login.this,"I dati inseriti non sono corretti! riprova..", Toast.LENGTH_LONG);
                                        toast.setGravity(Gravity.CENTER, 0, 0);
                                        toast.show();
                                }
                        }
                };

                Button Entra = (Button) findViewById(R.id.Entra);
                Entra.setOnClickListener(entra);




                //bottone INDIETRO             
                View.OnClickListener indietro = new View.OnClickListener() {

                        public void onClick(View v) {

                                Intent ips = new Intent(Login.this, MainActivityTelepark.class);
                                startActivity(ips);
                        }
                };

                Button Indietro = (Button) findViewById(R.id.Indietro);
                Indietro.setOnClickListener(indietro);


                //bottone LOGOUT               
                View.OnClickListener logout = new View.OnClickListener(){

                        public void onClick(View v) {

                                //Intent ips = new Intent(Login.this, MainActivityTelepark.class);
                                //startActivity(ips);

                                //-----------------  alert dialog
                                //Creo una finestra di dialogo
                                AlertDialog.Builder alertDialog = new AlertDialog.Builder(Login.this);
                                //Setto il titolo del dialog
                                alertDialog.setTitle("Conferma");
                                //Setto il messaggio da visualizzare
                                alertDialog.setMessage("Sei sicuro di voler effettuare il logout?");
                                //Disabilito il tasto fisico del dispositivo
                                alertDialog.setCancelable(false);
                                //Aggiungo il tasto di chiusura del dialog
                                alertDialog.setNegativeButton("Annulla", new DialogInterface.OnClickListener() {
                                        //Alla pressione del pulsante "chiudi" distruggo il dialog
                                        public void onClick(DialogInterface dialog, int which) {
                                                dialog.dismiss();
                                        }
                                });
                                //Aggiungo il tasto di conferma del dialog
                                alertDialog.setPositiveButton("Si", new DialogInterface.OnClickListener() {
                                        //Alla pressione del pulsante "chiudi" distruggo il dialog
                                        public void onClick(DialogInterface dialog, int which) {
                                                dialog.dismiss();
                                        }
                                });

                                //Mostro il dialog
                                alertDialog.show();
                        }
                };

                Button Logout = (Button) findViewById(R.id.Logout);
                Logout.setOnClickListener(logout);

        }