Внутренний класс — это Adapter, внутренний-внутренний класс — это Listener. Как получить доступ к (скрытым) членам/методам адаптера из Listener?
list.setAdapter(new Adapter() {
public View getView() {
// ...
button.setListener(new Listener() {
public void onClick() {
Adapter.this.remove(item);
}
);
}
});
Обычно для доступа к членам внешних классов вы просто говорите Outer.this.member, но в этом случае это дало мне следующую ошибку (с использованием фактического класса):
error: not an enclosing class: ArrayAdapter
Итак, как вы должны получить доступ члены внутреннего класса из внутреннего внутреннего класса? Мне не нравятся многоуровневые вложенные анонимные классы, но в этом случае я изучаю новый API и еще не уверен в более чистом способе. У меня уже есть обходной путь, но в любом случае хотел бы знать. remove() на самом деле не скрыт внутри-внутренним классом, поэтому указание класса на самом деле не нужно в этом случае, но хотел, чтобы в коде было ясно, где именно находится этот метод remove(). Я также хотел знать, если он скрыт. Я считаю, что использование Outer.$6.remove()
будет работать, но я также не думаю, что так должно быть.
-121-- -117 9476-
Этот фрагмент sass:
$red: #f00
$lightred: lighten($red, 50%)
body
background: $lightred
Анализируется как:
body {
background: white; }
Если вместо 50% вместо 45%, кажется, для работы, как ожидалось:
$lightred2: lighten($red, 45%)
...
background-color: #ffe5e5
Почему это становится белым вместо ожидаемых 50% красного?
Вы можете увидеть это в действии здесь http://tinkerbin.com/OefelPoi
(Примечание. Функция сохранения, похоже, имеет ошибку, в области css снова выберите Sass Old Syntax и перезапустите )
Обновление -
В итоге я хотел смешать белый цвет с исходным цветом, чтобы получить тонированный оттенок:
mix($color,white, 10%)