2011-06-22 5 views
0

Je suis en train de permettre un bouton quand j'exécute une fonction mais il me donne une erreur FC:Désactiver les boutons sur l'exécution

06-22 11:26:25.050: WARN/dalvikvm(688): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688): FATAL EXCEPTION: main 
06-22 11:26:25.089: ERROR/AndroidRuntime(688): java.lang.NullPointerException 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at com.es.inicio$1.onDateChanged(inicio.java:58) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.widget.DatePicker.notifyDateChanged(DatePicker.java:397) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.widget.DatePicker.access$100(DatePicker.java:46) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.widget.DatePicker$1.onChanged(DatePicker.java:100) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.widget.NumberPicker.notifyChange(NumberPicker.java:340) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.widget.NumberPicker.changeCurrent(NumberPicker.java:330) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.widget.NumberPicker$3.onClick(NumberPicker.java:153) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.view.View.performClick(View.java:2485) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.view.View$PerformClick.run(View.java:9080) 
06-22 11:26:25.089: ERROR/AndroidRuntime(688):  at android.os.Handler.handleCallback(Handler.java:587) 
l.......................... 

Mon code est:

DatePicker.OnDateChangedListener listenerCambiado = new DatePicker.OnDateChangedListener() { 

     @Override 
     public void onDateChanged(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      // TODO Auto-generated method stub 
       mYear = year; 
       mMonth = monthOfYear; 
       mDay = dayOfMonth; 
       Log.d("PRUEBA","ENTRAMOS EN LISTENER DEL DATEPCKER"); 
       //comprobarFecha(mYear,mMonth,mDay); 
       if (comprobarFechas(mYear,mMonth,mDay)){ 
        btnValidar.setEnabled(true);    
       }else{ 

        btnValidar.setEnabled(false); 

       } 
     } 
    }; 

     The function is: 

public boolean comprobarFechas (int ano, int mes, int dia){ 
    Calendar c = Calendar.getInstance(); 
    if (ano > c.get(Calendar.YEAR)){ 
     Toast.makeText(getApplicationContext(),"AÑO INCORRECTO", Toast.LENGTH_LONG).show(); 
     Log.d("PRUEBA","AÑO INCORRECTO"); 
     return false; 
     //btnValidar.setEnabled(false); 
    }else if (mes > c.get(Calendar.MONTH) && ano == c.get(Calendar.YEAR)){   
     Toast.makeText(getApplicationContext(),"MES INCORRECTO", Toast.LENGTH_LONG).show(); 
     Log.d("PRUEBA","MES INCORRECTO"); 
     return false; 
     //btnValidar.setEnabled(false); 
    }else { 
     Log.d("PRUEBA","ESTA BIEN"); 
     return true; 
     //btnValidar.setText("pulsado"); 
     //btnValidar.setEnabled(true); 

    } 
} 

pourrait vous aider moi s'il vous plait?

+0

Désolé. La fonction est: – mmm286

+1

uf .. mélanger le code espagnol avec l'anglais .. donc pas cool. –

Répondre

0

java.lang.NullPointerException que signifie u oublier de fournir findViewById(R.id.controlid); à aucun contrôle essayer de trouver dans votre code peut contenir cette résoud cette erreur :) :) Bonne programmation: - Pragna

+0

Oui je le fais: public void onCreate (Bundle savedInstanceState) { \t super.onCrée (savedInstanceState); \t setContentView (R.layout.inicio); \t \t \t final Calendrier c = Calendar.getInstance(); // INFLAR \t \t Bouton btnValidar = (Bouton) findViewById (R.id.btnValidar); \t \t btnValidar.setEnabled (faux); \t \t \t \t DatePicker calendario = (DatePicker) findViewById (R.id.datePicker1); mYear = c.get (Calendar.YEAR); mMonth = c.get (Calendar.MONTH); mDay = c.get (Calendar.DAY_OF_MONTH); calendario.init (année, mMois, jour, auditeurCambiado); ; \t} – mmm286

0

assurez-vous d'initialiser btnValidar en utilisant findViewById() avant d'essayer pour y accéder.

+0

Oui je fais: public void onCreate (Bundle savedInstanceState) { \t super.onCreate (savedInstanceState); \t setContentView (R.layout.inicio); \t \t final Calendrier c = Calendar.getInstance(); // INFLAR \t \t Bouton btnValidar = (Bouton) findViewById (R.id.btnValidar); \t \t btnValidar.setEnabled (faux); \t \t \t \t DatePicker calendario = (DatePicker) findViewById (R.id.datePicker1); mYear = c.get (Calendar.YEAR); mMonth = c.get (Calendar.MONTH); mDay = c.get (Calendar.DAY_OF_MONTH); calendario.init (année, mMois, jour, auditeurCambiado); ; \t} – mmm286

+0

Vous initialisez la variable locale dans 'onCreate'. Faites-en un membre de classe ou créez une copie locale dans 'onDateChanged' et init it – Asahi