Метод класса перенаправления Java не найден, необходим для Android onClick from xml layout - PullRequest
0 голосов
/ 15 ноября 2011

Я пытаюсь выяснить, возможно ли использовать «ловушку для метода» в объектах Java, чтобы метод можно было отправить другому объекту, который, как вам известно, имеет этот метод.

Это возможно в других языках, но я никогда не видел ничего похожего на Java.Я думаю, нет ... потому что вы не можете сделать что-то в форме myObject. "MethodName" (params);однако вы можете использовать Groovy, который расширяет Java.

То, чего я хочу добиться, - это использовать свойство android: onClick в макете XML в пользовательском объекте просмотра, содержимое которого надувается.

Проблема в том, что свойство onClick ищет метод в родительском Activity, а не в пользовательском представлении, что приводит к сбою программы.

Я бы предпочел просто использовать setOnClickListener (this) на моемПользовательский вид, но по другим причинам мы стараемся этого избежать и не очень чист.

Кто-нибудь знает альтернативу?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 ноября 2011

Вас интересует отражение, которое поддерживается в java начиная с версии 1.0. Да, синтаксис типа myObj."methodName"() не поддерживается, поэтому вы можете сказать:

myObj.getClass().getMethod("myMethod").invoke(myObj).

Для подробностей взгляните на отражение.

...