Autore Topic: Errore sulla progressBar  (Letto 684 volte)

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Errore sulla progressBar
« il: 24 Ottobre 2011, 17:39:33 CEST »
0
sto facendo un semplicissimo programmino per allenarmi con la progressbar ma questo non parte neanche mi dà errore
questo è lo script, molto semplice con un timer incremento un textview e una progressbar:

Codice (Java): [Seleziona]
import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

public class provaextends Activity implements View.OnClickListener {
        /** Called when the activity is first created. */
        private TextView visual;
        private Button button1;
        private ProgressBar prog;
        private int i = 0;
       
private Handler handler = new MyHandler();
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                visual = (TextView) findViewById(R.id.visual);
                button1=(Button)findViewById(R.id.button1);
                prog=(ProgressBar)findViewById(R.id.progressBar1);
                button1.setOnClickListener(this);
visual.setText("viaaaa");
                /*class MyThread extends Thread {
                       

                        public MyThread(Handler handler) {
                                this.handler = handler;
                        }*/

                }

        private class MyHandler extends Handler {
               
                @Override
                public void handleMessage(Message msg) {
                        Log.v("handler", "dentro la myhandler");
                        Bundle bundle = msg.getData();
                        Log.v("boudle", "dentro la myhandler");
                        if (bundle.containsKey("refresh")) {
                                int valore = bundle.getInt("refresh");
                                Log.v("valore", "valore = "+valore);
                                visual.setText(""+valore);
                                prog.setProgress(valore);
                               
                        }
                }

        }

        public void onClick(View v) {
                // TODO Auto-generated method stub
                TimerTask task = new TimerTask() {
                       
                        @Override
                        public void run() {

                                try {
                                        Log.v("start", "via");
                                        i++;
                                                notifica(i); // la funzione notifica invierà i
                                                Log.v("cicla", ""+i);   // messaggi all?activity
                                       
                                } catch (Exception e) {
                                        Log.v("errore", ""+e);
                                }
                        }

                        private void notifica(int str) {
                                Message msg = handler.obtainMessage();
                                Log.v("Message aggiorna inizio", "" + msg);
                                Bundle b = new Bundle();
                                b.putInt("refresh", str);
                                msg.setData(b);
                                Log.v("Message aggiorna fine", "" + msg.getData());
                                handler.sendMessage(msg);
                        }

                };
                Log.v("prima handler", "a");
                Log.v("prima thread", "b");
                Timer timer=new Timer();
                timer.schedule(task, 1000,1000);
                //MyThread thr = new MyThread(handler);
        //      thr.start();
                Log.v("thread partito", "c");
       
        }

}

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Errore sulla progressBar
« Risposta #1 il: 24 Ottobre 2011, 17:42:26 CEST »
0
Devi postare il logcat.

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore sulla progressBar
« Risposta #2 il: 24 Ottobre 2011, 17:46:48 CEST »
0
Devi postare il logcat.

scusami mi ero dimenticato, nonostante l'abbia letto sopra

Codice: [Seleziona]
10-24 15:15:12.082: ERROR/AndroidRuntime(602): FATAL EXCEPTION: main
10-24 15:15:12.082: ERROR/AndroidRuntime(602): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.maki.manuel/com.maki.manuel.NetisfactionActivity}: java.lang.NullPointerException
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.os.Looper.loop(Looper.java:123)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at java.lang.reflect.Method.invokeNative(Native Method)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at java.lang.reflect.Method.invoke(Method.java:521)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at dalvik.system.NativeStart.main(Native Method)
10-24 15:15:12.082: ERROR/AndroidRuntime(602): Caused by: java.lang.NullPointerException
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.Activity.findViewById(Activity.java:1637)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at com.maki.manuel.NetisfactionActivity.<init>(NetisfactionActivity.java:23)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at java.lang.Class.newInstanceImpl(Native Method)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at java.lang.Class.newInstance(Class.java:1429)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
10-24 15:15:12.082: ERROR/AndroidRuntime(602):     ... 11 more
[code]
[/code]

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore sulla progressBar
« Risposta #3 il: 24 Ottobre 2011, 18:06:25 CEST »
0
non ho la minima idea del perchè ma adesso funziona, come è gisuto che sia, infatti ho chiesto perchè non riuscivo proprio a vedere un errore in un codice così semplice...scusate tutti

Offline Verandi

  • Utente normale
  • ***
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore sulla progressBar
« Risposta #4 il: 24 Ottobre 2011, 18:40:27 CEST »
0
Purtroppo a volte, specialmente quando vai ad inserire/rimuovere nuovi id nei file di layout, eclipse fa un po' di confusione e inserisce i riferimenti sbagliati nel file R che contiene tutti gli id dell'applicazione.
Per risolvere basta fargli rigenerare il file R andando sul menù "project"/"Clean..."/ e selezionare il progetto su cui stai lavorando.
In questo caso, credo tu abbia risolto spingendo Eclipse a rigenerare il file R, magari modificando un file di layout.  ;-)

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore sulla progressBar
« Risposta #5 il: 25 Ottobre 2011, 14:24:04 CEST »
0

In questo caso, credo tu abbia risolto spingendo Eclipse a rigenerare il file R, magari modificando un file di layout.  ;-)
penso che sia stato proprio quello e poi ho anche riavviato tutto eclipse.
Già che ci sono e non voglio aprire un'alto post inutilmente, vorrei chiedere: la mia applicazione sull'emulatore funziona bene ma invece installata su un device mi crea errore e me la fa terminare. Non c'è un modo di colelgare il telefono al pc come se fosse l'emulatore stesso e interagirci direttamente da eclipse?oppure visualizzare un logcat?(non so se è chiaro il mio intento)

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Errore sulla progressBar
« Risposta #6 il: 25 Ottobre 2011, 14:45:33 CEST »
0
Non c'è un modo di colelgare il telefono al pc come se fosse l'emulatore stesso e interagirci direttamente da eclipse?oppure visualizzare un logcat?(non so se è chiaro il mio intento)

Basta:
-)Installare i driver del telefono sul pc se il pc è windows.
-)Collegare il telefono
-)Attivare la modalità debug sul telefono

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Errore sulla progressBar
« Risposta #7 il: 25 Ottobre 2011, 14:48:10 CEST »
0
perfetto grazie, l'avevo appena trovato anche io e lo stavo scrivendo..grazie mille per tutte le risposte!:)