Android: как динамически показать / скрыть элемент в элементе ListView в зависимости от значения массива? - PullRequest
1 голос
/ 29 февраля 2012

Я пытаюсь создать ListView, заполненный элементами, выбранными из API, и в зависимости от переменной я хочу показать / скрыть TextView в моем макете элемента ListView для этой строки.

Мой макет элемента ListViewсодержит 3 TextViews.Один из них по умолчанию скрыт с помощью android: visibilty: "GONE".

Я использую это для моего ListAdapter:

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

Присоединить к:

ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main, 
                            new String[] { "title", "info","comments", "score" }, 
                            new int[] { R.id.item_title, R.id.item_subtitle, R.id.post_comments, R.id.post_score });
setListAdapter(adapter);
final ListView lv = getListView();

Итак, мой вопрос: как я могу выполнить итерацию по всему списку, чтобы проверить, если «VariableA» == «что-то», а затем показать скрытый TextView внутри этого единственного элемента?

Или есть способдинамически вставить TextView в этот единственный элемент ListView?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Вы должны создать пользовательский адаптер для списка и написать некоторую логику в

public View getView(final int position, View convertView, ViewGroup parent) {


    if("variable1".equals("something")){
         //create view here For row

     }    else{
         //create another view here For row
   }

  return row;

}
0 голосов
/ 29 февраля 2012

Вам вообще не нужно реализовывать getView(), с помощью пользовательского связывателя представлений проверьте свой флаг и установите это представление невидимым или пропавшим. Поскольку вы уже используете средство связывания, его легче реализовать, чем getView()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...