[OFFEN] Wie über ArrayLists in ArrayList iteraten?

D

DMD-OL

Neues Mitglied
0
Hey
ich erhalte eine Lists in List und würde gern darüber iteraten.
Aber ich kenne leider die Syntax nicht. Ist etwas kompliezierter als bei Python :(

Code:
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQ_CODE_SPEECH_INPUT){
            if (resultCode == RESULT_OK && data != null){

                ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                textView.setText(result.get(0));

                ArrayList<String> datenList = new ArrayList<String>();
                ArrayList<String> arrayList = new ArrayList<String>();

                List<MaterialModel> materialList = myDB.getAllMaterial();

                if (materialList.size() != 0) {

                    for (int i = 0; i < materialList.size(); i++) {

                        MaterialModel material = materialList.get(i);

                        String name = material.getName() == null ? "" : material.getName();
                        String article = material.getArticle() == null ? "" : material.getArticle();
                        String description = material.getDescription() == null ? "" : material.getDescription();

                        //if (description.equals(result.get(0))) {
                        arrayList.add(name);
                        arrayList.add(article);
                        arrayList.add(description);
                        datenList.add(arrayList.toString());
                        arrayList.clear();
                        //}

                    }

                    if (datenList.size() != 0) {

                        // Hier kommt dann eben datenList an. Z.B. : [[a,b,c],[A,B,cC],[1,2,3]]
 
                        CustomAlertDialog.createMessageOk(MainActivity.this, "Übereinstimmung:", datenList.toString()).show();

                    } else {
                        CustomAlertDialog.createMessageOk(MainActivity.this, "Übereinstimmung:", "Keine Übereinstimmung gefunden!").show();
                    }
                }else{
                    CustomAlertDialog.createMessageOk(MainActivity.this, "Übereinstimmung:", "Die Datenbank ist leer!").show();
                }
            }
        }
    }
Ich würde gern jetzt über datenList iteraten....:)
 
Denk nur dran, dass deine datenList keine Liste von Listen ist, sondern nur eine Liste von Strings. Du klopfst deine temporäre Liste ja über toString flach. Man sollte toString nicht verwenden wenn man mit den Daten einer Datenstruktur noch was machen möchte.
 
ach so. scheiße, dann muß das toString aber schnell wieder weg :) danke
also so ungefähr? ich komm einfach überhaupt nicht mit der java-syntax klar, sorry
Code:
for (ArrayList hallo : datenList){

    for (String moin) : hallo){

        String eins = moin.get(0);
        String zwei = moin.get(1);
        String drei = moin.get(2);
    }
}
oder geht das auch einfacher und schneller, das ergebnis
result.get(0) der sprachausgabe mit jedem eintrag in der datenbank zu vergleichen.
das ist nämlich mein finales ziel, sozusagen :)
 
Zuletzt bearbeitet:
Du musst die wohl leider ein paar Basics der Objektorientierung antun. Ich würde hier entweder ein zusätzliches Container Objekt bauen in dem deine gewünschten Werte drin stehen und dann das in die datenList werfen, oder direkt das MaterialModel in die Liste packen. Dort steht doch sowieso alles drin was du wissen willst.
Dann kannst du an der Stelle wo du was damit machen willst einfach direkt auf getDescription etc zugreifen.
 

Ähnliche Themen

OnkelLon
Antworten
13
Aufrufe
1.981
OnkelLon
OnkelLon
M
Antworten
3
Aufrufe
163
moin
M
A
Antworten
1
Aufrufe
637
swa00
swa00
Zurück
Oben Unten