留言板
AssetListScreenlet
Buenos dias estamos probando el AssetListScreenlet para devolver contenidos.
Cojemos el className de JournalArticle, la idea es listar contenidos. Pero no vemos la lista de los contenidos renderizada, depurando si vemos que llegan contenidos.
Cojemos el className de JournalArticle, la idea es listar contenidos. Pero no vemos la lista de los contenidos renderizada, depurando si vemos que llegan contenidos.
com.liferay.mobile.screens.assetlist.AssetListScreenlet
android:id="@+id/asset_list_default"
android:layout_width="match_parent"
android:layout_height="match_parent"
liferay:labelFields="title"
liferay:classNameId="10109"
liferay:layoutId="@layout/asset_list_default"/>
public class WebContentActivity extends ThemeActivity implements BaseListListener<assetentry> {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_content);
_screenlet = (AssetListScreenlet) getActiveScreenlet(
R.id.asset_list_default, R.id.asset_list_default);
_screenlet.setVisibility(View.VISIBLE);
_screenlet.setListener(this);
hideInactiveScreenlet(R.id.asset_list_default, R.id.asset_list_default);
}
@Override
protected void onResume() {
super.onResume();
_screenlet.loadPage(1);
}
@Override
public void onListPageFailed(BaseListScreenlet source, int page, Exception e) {
error("Page request failed", e);
}
@Override
public void onListPageReceived(BaseListScreenlet source, int page, List<assetentry> entries, int rowCount) {
info("Page " + page + " received!");
}
@Override
public void onListItemSelected(AssetEntry element, View view) {
info("Item selected: " + element);
}
private AssetListScreenlet _screenlet;
</assetentry></assetentry>
No os recomiendo utilizar la clase ThemeActivity, si os fijáis en el código está pensada sólo para la aplicación de demo (probablemente deberíamos cambiarla) y muestra/oculta varios screenlets que tiene un tema.
Creo que lo que está pasando es que estáis utilizando getActiveScreenlet, que sólo hace un findViewById (mejor hacerlo directamente) y luego ocultáis el screenlet con hideInactiveScreenlet.
Cambiad la llamada a getActive... por un findViewById y quitad la llamada a hide y ya debería funcionar (creo)
protected View getActiveScreenlet(int defaultId, int materialId) {
return isDefaultTheme() ? findViewById(defaultId) : findViewById(materialId);
}
protected void hideInactiveScreenlet(int defaultId, int materialId) {
View view = isDefaultTheme() ? findViewById(materialId) : findViewById(defaultId);
view.setVisibility(View.GONE);
}
Creo que lo que está pasando es que estáis utilizando getActiveScreenlet, que sólo hace un findViewById (mejor hacerlo directamente) y luego ocultáis el screenlet con hideInactiveScreenlet.
Cambiad la llamada a getActive... por un findViewById y quitad la llamada a hide y ya debería funcionar (creo)
Muchas gracias, funcionó perfecto...se sabe la fecha para la nueva versión? Lo de poder filtrar los tipos de contenidos parece muy interesante.
Hola Pablo:
la siguiente versión está planeada para fin de Septiembre/principios de Octubre, pero si es MUY importante para vosotros (y prometéis dar feedback a cambio), podría haceros llegar una versión early-access de la 1.3... ¿qué me dices?
¡gracias por tu interés!
Juan
la siguiente versión está planeada para fin de Septiembre/principios de Octubre, pero si es MUY importante para vosotros (y prometéis dar feedback a cambio), podría haceros llegar una versión early-access de la 1.3... ¿qué me dices?
¡gracias por tu interés!
Juan