M 
		
				
				
			
		mitch_HD2
Fortgeschrittenes Mitglied
- 1
 
Guten Abend.
Ich habe ein kleines Problem.
Bin eine kleine "Haus" App am schreiben die bisher ganz gut funktioniert hat..
Ich habe 2 Fragmente (fragmentAdapter).. und die Main Activity..
In meiner Main Activity schicke ich ein UDP packet zum Server...
	
	
	
		
Wenn der Server das Packet empfangen hat schickt der mir die aktuelle Temperatur zurück die ich dann empfange.
	
	
	
		
soweit so gut... nun habe ich da meine
	
		
 und 
	
	
	
		
Die beiden Strings will ich nun an 2 TextView's übergeben.
Diese TextView's liegen aber auf einem Fragment.
	
	
	
		
Die class
	
		
 wird beim OnCreate ausgeführt...
Und noch einmal über einen MenuInflater.
Dort gibts ein Punkt IP-Addresse wo man die Server IP einträgt... Klickt man auf OK dann schickt der wieder ein Packet zum Server Empfängt und soll den String an die TextView geben.
Wenn ich nun die App starte... macht der alles wie er soll.
Wenn ich das ganze dann aber über den MenuInflater mache... CRASH...
	
	
	
		
Kann mir da jemand helfen?
EDIT:
habe eben versucht das ganze mit einem OnClick zu übergeben... aber immernoch das selbe
				
			Ich habe ein kleines Problem.
Bin eine kleine "Haus" App am schreiben die bisher ganz gut funktioniert hat..
Ich habe 2 Fragmente (fragmentAdapter).. und die Main Activity..
In meiner Main Activity schicke ich ein UDP packet zum Server...
		Code:
	
	public static void Connect(){
	try {
		InetAddress serverAddr = InetAddress.getByName(ipInt); //die IP vom editttext wird in einer Internetadresse umgewandelt
		
		ByteLength = SendByte.length;
		
		DatagramSocket socket = new DatagramSocket();
		DatagramPacket packet = new DatagramPacket(SendByte, ByteLength, serverAddr, Port);
		socket.send(packet);
		}
	
	
	catch (Exception e) 
	{
	}
	
		Code:
	
	public static void Recieve() throws IOException{
	DatagramPacket p = new DatagramPacket(BufRec, BufRec.length);
	DatagramSocket s = new DatagramSocket(Port);
	s.receive(p);
	BufRecStr = new String(BufRec, 0, p.getLength());
	Log.d("Udp tutorial","REC" + BufRecStr);
	TempRecIn = BufRecStr.substring(0,5);
	TempRecOut = BufRecStr.substring(6,11);
	
	s.close();
}
	soweit so gut... nun habe ich da meine
		Code:
	
	TempRecIn
	
		Code:
	
	TempRecOut
	Die beiden Strings will ich nun an 2 TextView's übergeben.
Diese TextView's liegen aber auf einem Fragment.
		Code:
	
	public static class ÜbergabeTemp extends AsyncTask<Object, Object, Object> {
	
	@Override
    protected Object doInBackground(Object... arg0) {
		//Fragment1.settext(TempRecIn,TempRecOut);
		Fragment1.TempIn_txt.setText(TempRecIn+" °C");
		Fragment1.TempOut_txt.setText(TempRecOut+" °C");
		
        return null;
    }
}
	Die class
		Code:
	
	ÜbergabeTemp
	Und noch einmal über einen MenuInflater.
Dort gibts ein Punkt IP-Addresse wo man die Server IP einträgt... Klickt man auf OK dann schickt der wieder ein Packet zum Server Empfängt und soll den String an die TextView geben.
Wenn ich nun die App starte... macht der alles wie er soll.
Wenn ich das ganze dann aber über den MenuInflater mache... CRASH...
		Code:
	
	09-29 19:20:21.315: E/AndroidRuntime(19457): FATAL EXCEPTION: AsyncTask #5
09-29 19:20:21.315: E/AndroidRuntime(19457): java.lang.RuntimeException: An error occured while executing doInBackground()
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.os.AsyncTask$3.done(AsyncTask.java:299)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.FutureTask.run(FutureTask.java:137)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.lang.Thread.run(Thread.java:856)
09-29 19:20:21.315: E/AndroidRuntime(19457): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4867)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:947)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.view.View.requestLayout(View.java:15430)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.widget.TextView.checkForRelayout(TextView.java:6625)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.widget.TextView.setText(TextView.java:3719)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.widget.TextView.setText(TextView.java:3577)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.widget.TextView.setText(TextView.java:3552)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at mitch.test.ledrgb.RGBActivity$ÜbergabeTemp.doInBackground(RGBActivity.java:256)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
09-29 19:20:21.315: E/AndroidRuntime(19457): 	... 5 more
	Kann mir da jemand helfen?
EDIT:
habe eben versucht das ganze mit einem OnClick zu übergeben... aber immernoch das selbe
			
				Zuletzt bearbeitet: