2014-02-06 2 views
2

Я сохранили несколько значений к ArrayList HashMap так:Получение значения из ключа/значения в ArrayList HashMap <String, String>

ArrayList<HashMap<String, String>> bookDetails = new ArrayList<HashMap<String, String>>(); 

HashMap<String, String> map = new HashMap<String, String>(); 

       map.put("book_author", bookAuthor); 
       map.put("book_description", bookDescription); 


       bookDetails.add(map); 

Я просто хочу, чтобы иметь возможность извлечь значение описания и иметь его отображается в TextView, как бы я это сделал? Заранее спасибо.

ответ

3

Что-то, как это должно работать:

TextView text = (TextView) findViewById(R.id.textview_id); 
text.setText(bookDetails.get(0).get("book_description")); 

Вместо вызова get(0) вы можете, конечно, также итерации по bookDetails массив и получить переменную счетчика текущей итерации, например, get(n)

3

Действительно ли карта необходима?

Почему бы не создать объект Book.java.

Книга объект имеет 2 атрибуты:

public class Book { 

    private String bookAuthor; 
    private String bookDescription; 

    public String getBookAuthor() { 
     return bookAuthor; 
    } 
    public void setBookAuthor(String bookAuthor) { 
     this.bookAuthor = bookAuthor; 
    } 
    public String getBookDescription() { 
     return bookDescription; 
    } 
    public void setBookDescription(String bookDescription) { 
     this.bookDescription = bookDescription; 
    } 

} 

Тогда вы можете иметь Список книг.

1

Я предлагаю изменить способ хранения информации.

Если ваша карта содержит только автора и описание, эффективным способом было бы полностью исключить ArrayList и использовать только карту.

Карта будет

HashMap<String, String> map; 
map.put(bookAuthor, bookDescription); 

Доступа описания было бы проще, а также:

String desc = map.get(bookAuthor); 

Надеется, что это помогает.

Смежные вопросы