Autore Topic: Errore Null Pointer Progress Dialog Async Task  (Letto 1061 volte)

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Errore Null Pointer Progress Dialog Async Task
« il: 08 Marzo 2013, 16:10:00 CET »
0
Codice (Java): [Seleziona]
package martu.martumsg;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Home extends Activity{
        Button bLog;
        Button bReg;
        EditText mMailET;
       
        private ProgressDialog progressDialog;
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);
       
        mMailET=(EditText)findViewById(R.id.editMail);
       
        bLog=(Button)findViewById(R.id.bLog);
        bReg=(Button)findViewById(R.id.bReg);
       
        bLog.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                String mail=mMailET.getText().toString();
                                if(TextUtils.isEmpty(mail)){
                                        Toast.makeText(getApplicationContext(), "Inserisci la mail!", Toast.LENGTH_LONG).show();
                                }
                                else{
                                        new Operation().execute("Ciao");
                                }      
                        }
                        });
       
        bReg.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                               
                        }
               
        });
       
        }

        @Override
        protected void onDestroy() {
                // TODO Auto-generated method stub
                super.onDestroy();
        }

//      AsyncTask
        private class Operation extends AsyncTask<String, Void, String>
        {  
                @Override          
                protected String doInBackground(String... params)
                { // code to be executed in background thread              
                        try {      
                           Thread.sleep(1000);
                    } catch (InterruptedException e)
                    {      // TODO Auto-generated catch block  
                        e.printStackTrace();          
                    }  
                return "Executed";
                }  
           
                @Override  
                protected void onPostExecute(String result)
                { // runs on UI thread and updated UI after executing doInBackground
                        progressDialog.dismiss();
                }
               
                @Override
                protected void onPreExecute() {
                        ProgressDialog progressDialog = ProgressDialog.show(Home.this, "Title ", "Loading…");
                        progressDialog.show();
                }
               
                @Override
                protected void onProgressUpdate(Void... values) {
                        // runs on UI thread and starts first
                }
           
        }
}
package martu.martumsg;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Home extends Activity{
        Button bLog;
        Button bReg;
        EditText mMailET;
       
        private ProgressDialog progressDialog;
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);
       
        mMailET=(EditText)findViewById(R.id.editMail);
       
        bLog=(Button)findViewById(R.id.bLog);
        bReg=(Button)findViewById(R.id.bReg);
       
        bLog.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                String mail=mMailET.getText().toString();
                                if(TextUtils.isEmpty(mail)){
                                        Toast.makeText(getApplicationContext(), "Inserisci la mail!", Toast.LENGTH_LONG).show();
                                }
                                else{
                                        new Operation().execute("Ciao");
                                }      
                        }
                        });
       
        bReg.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                               
                        }
               
        });
       
        }

        @Override
        protected void onDestroy() {
                // TODO Auto-generated method stub
                super.onDestroy();
        }

//      AsyncTask
        private class Operation extends AsyncTask<String, Void, String>
        {  
                @Override          
                protected String doInBackground(String... params)
                { // code to be executed in background thread              
                        try {      
                           Thread.sleep(1000);
                    } catch (InterruptedException e)
                    {      // TODO Auto-generated catch block  
                        e.printStackTrace();          
                    }  
                return "Executed";
                }  
           
                @Override  
                protected void onPostExecute(String result)
                { // runs on UI thread and updated UI after executing doInBackground
                        progressDialog.dismiss();
                }
               
                @Override
                protected void onPreExecute() {
                        ProgressDialog progressDialog = ProgressDialog.show(Home.this, "Title ", "Loading…");
                        progressDialog.show();
                }
               
                @Override
                protected void onProgressUpdate(Void... values) {
                        // runs on UI thread and starts first
                }
           
        }
}
Codice (logcat): [Seleziona]
03-08 14:57:40.197: E/Trace(2830): error opening trace file: No such file or directory (2)
03-08 14:57:47.948: E/AndroidRuntime(2830): FATAL EXCEPTION: main
03-08 14:57:47.948: E/AndroidRuntime(2830): java.lang.NullPointerException
03-08 14:57:47.948: E/AndroidRuntime(2830):     at martu.martumsg.Home$Operation.onPostExecute(Home.java:80)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at martu.martumsg.Home$Operation.onPostExecute(Home.java:1)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at android.os.AsyncTask.finish(AsyncTask.java:631)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at android.os.Looper.loop(Looper.java:137)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at android.app.ActivityThread.main(ActivityThread.java:5041)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at java.lang.reflect.Method.invokeNative(Native Method)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at java.lang.reflect.Method.invoke(Method.java:511)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-08 14:57:47.948: E/AndroidRuntime(2830):     at dalvik.system.NativeStart.main(Native Method)
03-08 14:57:51.838: E/Trace(2846): error opening trace file: No such file or directory (2)

Le riga coinvolta (80)  è progressDialog.dismiss, se qualcuno mi da una mano a risolvere questo piccolo problema gli sarei grato ^_^
Yes i am noob :)

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore Null Pointer Progress Dialog Async Task
« Risposta #1 il: 08 Marzo 2013, 16:18:19 CET »
0
progressDialog viene dichiarata ma mai inizializzata rimanendo null, per cui quando ci chiami sopra .dismiss() esplode con una NullPointerException.

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:Errore Null Pointer Progress Dialog Async Task
« Risposta #2 il: 08 Marzo 2013, 16:20:40 CET »
0
progressDialog viene dichiarata ma mai inizializzata rimanendo null, per cui quando ci chiami sopra .dismiss() esplode con una NullPointerException.
mmmh penso di aver capito cosa intendi anche se non mi è ben chiaro dove e come farlo..  :'(
Yes i am noob :)

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore Null Pointer Progress Dialog Async Task
« Risposta #3 il: 08 Marzo 2013, 16:24:20 CET »
+1
Scusa, ho guardato meglio il codice e ho detto una sciocchezza.

Il tuo problema è qui:
Codice (Java): [Seleziona]
@Override
protected void onPreExecute() {
                        ProgressDialog progressDialog = ProgressDialog.show(Home.this, "Title ", "Loading…");
                        progressDialog.show();
}

Che dovrebbe essere invece:
Codice (Java): [Seleziona]
@Override
protected void onPreExecute() {
                        progressDialog = ProgressDialog.show(Home.this, "Title ", "Loading…");
                        progressDialog.show();
}

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:Errore Null Pointer Progress Dialog Async Task
« Risposta #4 il: 08 Marzo 2013, 16:31:16 CET »
0
Scusa, ho guardato meglio il codice e ho detto una sciocchezza.

Il tuo problema è qui:
Codice (Java): [Seleziona]
@Override
protected void onPreExecute() {
                        ProgressDialog progressDialog = ProgressDialog.show(Home.this, "Title ", "Loading…");
                        progressDialog.show();
}

Che dovrebbe essere invece:
Codice (Java): [Seleziona]
@Override
protected void onPreExecute() {
                        progressDialog = ProgressDialog.show(Home.this, "Title ", "Loading…");
                        progressDialog.show();
}
ok a questo punto immagino di dover fare questa cosa:
Codice (Java): [Seleziona]
public class Home extends Activity{
 ProgressDialog progressDialog;

...

giusto?
Yes i am noob :)

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Errore Null Pointer Progress Dialog Async Task
« Risposta #5 il: 08 Marzo 2013, 16:35:06 CET »
0
ok a questo punto immagino di dover fare questa cosa:
Codice (Java): [Seleziona]
public class Home extends Activity{
 ProgressDialog progressDialog;

...

giusto?

L'hai già fatta  :-)

Codice (Java): [Seleziona]
public class Home extends Activity{
        Button bLog;
        Button bReg;
        EditText mMailET;
       
        private ProgressDialog progressDialog; // eccola qui
        //...

Offline ibrido90

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Ace
Re:Errore Null Pointer Progress Dialog Async Task
« Risposta #6 il: 08 Marzo 2013, 16:36:11 CET »
0
ok grazie dell'aiuto! ;)
Yes i am noob :)