ich meine erste Android App nur versuchen, und haben ein Problem festgestellt, wo ich wirklich nicht weiterkommen. In meiner App erstelle ich eine ArrayList
, die mit Objekten gefüllt wird. Jedes Objekt hat vier Attribute. Jetzt möchte ich jedes Attribut für jedes Objekt in seinem eigenen spezifischen TextView
schreiben. Aber da ist mein Problem. Wenn der gleiche Code in einer normalen Java-Anwendung ausgeführt wird und ich System.out.Print("getter method")
verwende, bekomme ich den Wert, den ich gerne hätte, aber wenn ich .setText("getter method")
verwende bekomme ich was man auf dem Screenshot sehen kann.Android Textview setText mit Getter zurückgeben
ActivityClass:
public class ShowBeaconActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showbeacons);
setUpShowBeacons();
}
public void setUpShowBeacons(){
//
//Beacon 1
//
TextView beaconOneUUID = (TextView)findViewById(R.id.txtBeaconOneUUIDValue);
beaconOneUUID.setText(BeaconListe.getBeacon(0,"UUID"));
TextView beaconOneMajor = (TextView)findViewById(R.id.txtBeaconOneMajorValue);
beaconOneMajor.setText(BeaconListe.getBeacon(0,"Major"));
TextView beaconOneMinor = (TextView)findViewById(R.id.txtBeaconOneMinorValue);
beaconOneMinor.setText(BeaconListe.getBeacon(0,"Minor"));
TextView beaconOneRSSI = (TextView)findViewById(R.id.txtBeaconOneRSSIValue);
beaconOneRSSI.setText(BeaconListe.getBeacon(0,"RSSI"));
//
//Beacon 2
//
TextView beaconTwoUUID = (TextView)findViewById(R.id.txtBeaconTwoUUIDValue);
beaconTwoUUID.setText(BeaconListe.getBeacon(1,"UUID"));
...
}
}
BeaconClass:
public class Beacon {
private String UUID;
private String Major;
private String Minor;
private int RSSI;
public Beacon(String UUID, String Major,String Minor, int RSSI){
this.UUID = UUID;
this.Major = Major;
this.Minor = Minor;
this.RSSI = RSSI;
}
//
//Getter
//
public String getUUID(){
return UUID;
}
public String getMajor(){
return Major;
}
public String getMinor() {
return Minor;
}
public int getRSSI() {
return RSSI;
}
//
//Setter
//
public void setRSSI(int RSSI){
this.RSSI = RSSI;
}
}
BeaconListeClass
public class BeaconListe {
private static ArrayList<Beacon>Liste = new ArrayList<Beacon>();
//
//Getter
//
public static String getBeacon(int index, String value){
String result = "";
switch(value){
case "UUID": result = Liste.get(index).getUUID();
break;
case "Major": result = Liste.get(index).getMajor();
break;
case "Minor": result = Liste.get(index).getMinor();
break;
case "RSSI": int resultTemp = Liste.get(index).getRSSI();
result = String.valueOf(resultTemp);
break;
}
return result;
}
//
//Setter
//
public static void addBeacon(String UUID, String Major, String Minor, int RSSI){
Liste.add(new Beacon(UUID, Major, Minor, RSSI));
}
Dank für Ihre Antwort danken, aber es hilft nicht. Und ich weiß nicht, warum es hätte helfen sollen. Vielleicht hätte ich das erwähnen sollen. Wenn ich auf den Button "Show Beacons" klicke, öffnet sich diese Aktivität und wenn ich nicht mindestens 4 Beacons (es ist auch das Limit) zu meiner Liste hinzugefügt habe. Also, wenn dieses Fenster erscheint, bin ich ziemlich sicher, dass es in meiner Liste einen Wert für jedes TextView gibt :) – Tobias