Android - Как Вы связываете ListView с набором пользовательских объектов?

Мне назвали класс PhoneContact с 3 свойствами: Заголовок, Описание и PhoneNumber

Если бы у меня есть набор их, как я пошел бы о привязке их к a ListView содержа a TextView для каждого свойства?

12
задан Sufian 3 June 2014 в 05:57
поделиться

1 ответ

Я нашел это в стандарте C++ (§ 8,5,8):

Объект, инициализатор которого является пустым набором скобок, т.е. (), должен быть инициализирован значением.

[Примечание: поскольку () не допускается синтаксис для инициализатора,

 Xa ();

не является объявлением объекта класса X, а объявление функции, принимающей no аргумент и возврат X. Форма () допускается в некоторых других контексты инициализации (5.3.4, 5.2.3, 12.6.2). - end note]

-121--1070113-

eval EXPR может использоваться для метапрограммирования в случае невозможности полагаться на лосей или тому подобное Рамки для создания классов на лету. Посмотрите на источник Исключение:: Класс чтобы увидеть полный ужас этой техники.

Добавление: (@ friedo)
Одна функция, которая eval обеспечивает управление таблицей символов это возможность использовать SUPER и работать так, как ожидалось:

package Foo;
sub msg { return 'Foo' }

package MyCodeGenerator;

use strict;
use warnings;

eval <<'EOPERL'; # '' -> no variable interpolation
  package FooBar;
  @FooBar::ISA = qw/Foo/;
  sub msg {
    my $self = shift;
    return $self->SUPER::msg() . 'Bar'; # calls &Foo::msg
  }
EOPERL

Пока это (надеюсь) умрет во время выполнения, или настроить вас на многочасовой сеанс отладки:

package BROKEN_Generator;

@FooBar::ISA = qw/Foo/;
*{'FooBar::msg'} = sub {
  my $self = shift;
  return $self->SUPER::msg() . 'Bar'; # tries to call &BROKEN_Generator::msg
}

Легко в моем Топ 5 вещей, которые я ненавижу о Perl !

-121--2835498-

Расширить ArrayAdapter , переопределяя getView (int, View, ViewGroup) .

Чтобы подключить пользовательский адаптер, я предполагаю, что действие Activity расширяет действие ListActivity . В одном из методов жизненного цикла (например, onCreate () , onResume () или onStart () ) вызовите setListAdapter (myCustomAdapter) .

В этой статье показано, как это сделать: Android Series: Пользовательские предметы и адаптеры ListView .

22
ответ дан 2 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: