Una buena solución para este problema, si utiliza ActionCell que es capaz de manejar clic. El uso de esto es un poco complicado, pero para mí funcionó bastante bien.
Primero debe inicializar ActionCell con un delegado, en el constructor, escriba new ActionCell.Delegate<your class>
. En este caso, anule el método execute
y escriba su código que maneje el evento de clic.
Lo otro que debe hacer es crear un html a partir de la imagen. La clase SafeHtmlUtils
le ofrece una manera muy fácil de hacerlo. Se método fromTrustedString ayuda a construir el html:
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create ("Your image from a resource class").getHTML());
De esta manera el campo SafeHTML puede initalized y si se le da contructor del ActionCell la SafeHTML y el delegado, que va a hacer el trabajo por usted.
En este ejemplo, se inicializará un botón con la imagen del archivo de paquete que contiene. Puede hacerlo sin el botón si anula el método de renderizado de ActionCell y agrega SafeHtmlBuilder en el método con la misma variable SafeHtml que la anterior.
Mi código es el siguiente:
IdentityColumn<Type> imageCell = new IdentityColumn<Type>(new ActionCell<Type>("AnyString",
new ActionCell.Delegate<Type>() {
@Override
public void execute(final Type item) {
"your code"
}
}) {
@Override
public void render(Context context, Type value, SafeHtmlBuilder sb) {
if (value != null) {
SafeHtml html = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(resource.image).getHTML());
sb.append(html);
}
}
});
prefiere reemplazar el método en una otra clase, pero yo no quería separarlos para este post. Me funcionó muy bien, espero que ayude a otros también.
hice solución es utilizar pila de botón en lugar de celda de la imagen a continuación, he cambiado el estilo de la imagen y el botón de fondo, pero a ella. está funcionando bien, dilo ahora. –