tobiased
Goto Top

Android TextView setText via Getter

Guten Tag Community,

ich versuche mich gerade an meiner ersten Anroid App und bin auf ein Problem gestoßen, bei dem ich nicht so recht weiter komme. Mein Ziel ist es eine App zu schreiben, in welcher eine ArrayListe erstellt wird und mit Objekten gefüllt werden soll. Dazu habe ich in meiner MainActivity vier EditViews erstellt, in denen ich die Werte eintragen kann. Durch drücken eines Add Buttons wird das Object dann erstellt und der Liste hinzugefügt. Nun habe ich einen zweiten Button, welcher eine weitere Activity aufruft. In dieser möchte ich mir nun die ersten vier Objecte meiner Liste ausgeben lassen. Jedoch jeden Wert eines Objectes in einer eigenen TextView. Die nötigen Getter-Funktionen habe ich bereits dafür und bereits in einer normalen Java Anwendung mit "System.out.Println" getestet. Mein Problem ist nur, dass wenn ich mit der gleichen Getter-Funktion ein ".setText" auf die entsprechenden TextViews anwende bekomm ich die Ausgabe, welche im Screenshot zu sehen ist.

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));
    }
}
screenshot_2017-02-02-11-10-19[1]

Content-Key: 328232

Url: https://administrator.de/contentid/328232

Printed on: April 25, 2024 at 05:04 o'clock

Member: Tobiased
Tobiased Feb 03, 2017 at 12:14:20 (UTC)
Goto Top
Das Problem lag nicht daran, wie ich die Liste auslese sondern daran wie ich sie befülle. Ich musste lediglich in meiner addBeacon Funktion(welche ich hier nicht gepostet hatte, weil ich nicht daran gedacht habe, dass es daran liegen könnte) den Befehl zum auslesen des TextView ändern.

Alt:
String.valueOf((TextView) findViewById(R.id.txtUUID))
Neu:
((TextView) findViewById(R.id.txtUUID)).getText().toString();