Bonjour.
J'ai un petit problème dans mon code et je n'arrive pas à le solutionner.
Je reçois des donnés (string) via une connexion bluetooth (de la classe bluetooth) et j'aimerais suite à cette réception, mettre à jour le TextView d'une activité.
Le problème vient de la ligne
context.logview.setText("coucou");
(dans l'exemple, je n'envois pas la donnée reçut mais "coucou" juste pour tester.)
Voila la partie du code qui reçoit les donnés :
Et j'obtiens l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 String data = new String(rawdata); Log.d("debug", "new string"); Log.d("debug", "data"); //a faire dans le Thread UI Log.d("debug", "envoie.affiche "+ data); context = (MainActivity) context; Log.d("debug", "context cree"); //a faire dans le Thread UI runOnUiThread(new Runnable() { public void run() { Log.d("debug", "in Run on UI"); context.logview.setText("coucou"); } } ); Log.d("debug", data);
Avec un TextView a priori bien déclaré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 07-22 01:41:07.411: D/debug(32038): new string 07-22 01:41:07.411: D/debug(32038): data 07-22 01:41:07.411: D/debug(32038): envoie.affiche f 07-22 01:41:07.411: D/debug(32038): context cree 07-22 01:41:07.421: D/debug(32038): in Run on UI 07-22 01:41:07.421: D/AndroidRuntime(32038): Shutting down VM 07-22 01:41:07.421: W/dalvikvm(32038): threadid=1: thread exiting with uncaught exception (group=0x40ab6228) 07-22 01:41:07.421: E/AndroidRuntime(32038): FATAL EXCEPTION: main 07-22 01:41:07.421: E/AndroidRuntime(32038): java.lang.NullPointerException 07-22 01:41:07.421: E/AndroidRuntime(32038): at com.example.service_ap.BtClass$1$1.run(BtClass.java:307) 07-22 01:41:07.421: E/AndroidRuntime(32038): at android.os.Handler.handleCallback(Handler.java:608) 07-22 01:41:07.421: E/AndroidRuntime(32038): at android.os.Handler.dispatchMessage(Handler.java:92) 07-22 01:41:07.421: E/AndroidRuntime(32038): at android.os.Looper.loop(Looper.java:156) 07-22 01:41:07.421: E/AndroidRuntime(32038): at android.app.ActivityThread.main(ActivityThread.java:4987) 07-22 01:41:07.421: E/AndroidRuntime(32038): at java.lang.reflect.Method.invokeNative(Native Method) 07-22 01:41:07.421: E/AndroidRuntime(32038): at java.lang.reflect.Method.invoke(Method.java:511) 07-22 01:41:07.421: E/AndroidRuntime(32038): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 07-22 01:41:07.421: E/AndroidRuntime(32038): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 07-22 01:41:07.421: E/AndroidRuntime(32038): at dalvik.system.NativeStart.main(Native Method) 07-22 01:41:07.431: D/debug(32038): f 07-22 01:44:20.059: D/Process(32038): killProcess, pid=32038
J’espère que vous pourrez m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class MainActivity extends Activity implements OnClickListener { public TextView logview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("debug","Commencement"); MyApplication appState = ((MyApplication)getApplicationContext()); Log.d("debug","Context de MyApplication recuperé"); bt = appState.CreateBtDevice(); Log.d("debug","bt recuperé"); logview = (TextView)findViewById(R.id.logview);
Merci d'avance.
Partager