Мне назвали класс PhoneContact
с 3 свойствами: Заголовок, Описание и PhoneNumber
Если бы у меня есть набор их, как я пошел бы о привязке их к a ListView
содержа a TextView
для каждого свойства?
Я нашел это в стандарте C++ (§ 8,5,8):
-121--1070113-Объект, инициализатор которого является пустым набором скобок, т.е. (), должен быть инициализирован значением.
[Примечание: поскольку () не допускается синтаксис для инициализатора,
Xa ();
не является объявлением объекта класса X, а объявление функции, принимающей no аргумент и возврат X. Форма () допускается в некоторых других контексты инициализации (5.3.4, 5.2.3, 12.6.2). - end note]
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 .