2016-07-21 28 views
1

Ich möchte den Index der benutzerdefinierten Array-Liste zu finden. Dies ist meine benutzerdefinierte Array-Liste:Wie finde ich den Index des Arrays in benutzerdefinierten Array-Liste ...?

private ArrayList<UserData> ListItems = new ArrayList<>(); 

UserData list = new UserData("list", "5", R.drawable.email_black, false); 

UserData list1 = new UserData("list1", "3",R.drawable.text_msg, false); 

UserData list2 = new UserData("list2", "2",R.drawable.phone_call, false); 

ListItems.add(list); 
ListItems.add(list1); 
ListItems.add(list2); 

I wie unten täte, aber nicht um den Index zu bekommen.

int m = ListItems.indexOf("list1"); 

UserData obj = ListItems.get(m); 
String name = obj.getName(); 

Ich brauche list1 in name string.

+0

Sie haben die 'userData' Objekt in' listItems.indexOf() übergeben 'nicht die Zeichenfolge, um um den Index zu bekommen. – Geros

+0

können Sie erklären, wie ....? – sunny

+1

Das ist benutzerdefinierte Objekt nicht benutzerdefinierte Liste. Sie müssen ListItems.indexOf (list1) übergeben, hier ist list1 ein UserData-Objekt (in Ihrem Fall ein benutzerdefiniertes Objekt). –

Antwort

1

Iterator Ihre Array-Liste, um Ihre erforderlichen Daten zu erhalten. Sie etwas wie unten:

for (int i = 0; i < ListItems.size(); i++) { 
     String userListName = ListItems.get(i).getListName(); 
     if(userListName.equals("list1")){ 
      //Do something here 
     }else{ 
      //Nthng to do 
     } 
    } 
1

Die Methode indexOf basiert auf dem Argument und dem Element in der Liste, das gleich ist. Da sie nicht (eine ist eine UserData Instanz und die andere ist eine String), können Sie nicht indexOf verwenden. Stattdessen müssen Sie diese Logik selbst implementieren:

+0

wo zu retournieren Artikel; UserData Element = getUserDataByName ("list1"); String name = item.getName(); es wotking oder'not .....? – sunny

+0

@samir ja, das sollte funktionieren. Wenn Sie besonders vorsichtig sein wollen, sollten Sie 'item! = Null 'vor dem Aufruf von' item.getName() 'überprüfen. – Mureinik

+0

ok bro ich wl füge es hinzu. jetzt – sunny

1

In einem solchen Szenario können Sie HashMap verwenden auch. Verwenden Sie HashMap<String,UserData> wo String wäre "Liste", "list1" usw.

Ex -

map.put("list", list);