int to string ...

tomovic

Bekanntes Mitglied
hallo,
ich möchte gerne die x Pos in ein Text Feld setzen(bei touch).:bahnhof:


Java:
public boolean onTouchEvent(MotionEvent event) {
	    int eventaction = event.getAction();

	    switch (eventaction) {
	        case MotionEvent.ACTION_DOWN: 
	        	tw.setText("down.....");   <------ geht ohne Probleme
	            break;

	        case MotionEvent.ACTION_MOVE:
	        	int pos = (int)event.getX();	        	
	        	tw.setText(pos.toString()); <-----Problem !!!
	        	       	
	            break;
pos.toString()
 
Zuletzt bearbeitet:
thx,
ja ist mir klar, aber irgend wie klappt das nicht.
tw ist doch String oder ist da was anderst weil ich es auf dem Bildschirm ausgegebe?
 
Das aufrufen einer Methode erfordert in jedem fall eine Referenz auf ein Objekt und das Objekt selbst. Primitive Datentypen sind aber keine Objekte sondern einfach nur lose im Raum stehende Daten. Demnach kann man auch nicht auf sie verweisen (referenzieren) oder OO Dinge mit ihnen anstellen.
Damit man aber trotzdem OO Funktionen mit solchen Informationen nutzen kann gibt es die Wrapper Klassen Byte, Short, Integer, Long, Double, Float und Boolean. (Achtung, primitive Datentypen werden klein geschrieben! byte, short, int, long, double...).

Dir bleiben also zwei möglichkeiten:
  1. Das
    Code:
    int
    in ein
    Code:
    Integer
    "casten": [c]Integer i2 = (Integer) i[/c] (das ist eigentlich kein casten denn was hier vom Compiler intern gemacht wird ist dashier:
    Code:
    Integer i2 = new Integer(i)[/c]
    [*]Die statische Methode [code]toString()
    von Integer benutzen: [c]Integer.toString(i)[/c]
 
Zuletzt bearbeitet:
thx all,
habs hinbekommen
Java:
int pos = (int)event.getX();	        	
	        	tw.setText(Integer.toString(pos));
 
Warum denn so kompliziert?

Ich verwende immer einen kleinen Trick, sodass ich den Datentyp der Variable nicht ändern muss.
Java:
int var1 = 20;
tv.setText(var1 + "");
Was spricht gegen diese Möglichkeit, denn einfacher ist sie ja oder?

LG, freakyy
 
Warum denn so kompliziert?

Ich verwende immer einen kleinen Trick, sodass ich den Datentyp der Variable nicht ändern muss.
Java:
int var1 = 20;
tv.setText(var1 + "");
Was spricht gegen diese Möglichkeit, denn einfacher ist sie ja oder?

LG, freakyy

was du da machst ist nicht ein int in einen String umzuwandeln sondern einen Leeren String mit einem String zu concatenaten. Intern macht java dann das int zu einem String. Aber das zusammenfügen mit dem leeren String nimmt zusätzlich Zeit weg.
 
Java:
int var1 = 20;
tv.setText(var1 + "");
Was spricht gegen diese Möglichkeit, denn einfacher ist sie ja oder?

Klar so geht es wenn man mal schnell machen will.
Die Lösung funktioniert auch aber sie ist sehr unschön. Unter anderem weil viel unnötiger Overhead beim "zusammenbauen" des Strings erzeugt wird usw. (betrifft dann vor allem große Projekte und Performance kritische Sachen)
 

Zurück
Oben