Android ListView en el widget onClick no funciona
Estoy tratando de hacer que el listrows en mi Widget ListView haga clic en el método setOnClickFillInIntent
, pero siempre que haga clic en un ListItem nada happends. Estas son algunas partes clave de mi código:
Intent i = new Intent(); Bundle extras = new Bundle(); extras.putInt(Resource.WIDGET_PACKAGE, position); i.putExtras(extras); row.setOnClickFillInIntent(R.id.widget_layout_parent, i);
Esto es al final de getView()
en mi ViewFactory. Resource.WIDGET_PACKAGE contiene el nombre de mi paquete y es como cualquier otra clave. La posición int es de los parámetros getView()
. R.id.widget_layout_parent
es el diseño padre de todos los elementos de la lista.
- A veces listView.getChildAt (int index) devuelve NULL (Android)
- Registrarse en la transmisión local dentro de una vista personalizada
- Android View y ViewGroup
- ImageButton en el elemento secundario de lista expandible
- Cómo obtener el estado de la casilla de verificación en el listview expandible en android
Aquí está el final de mi WidgetProviders onUpdate()
Intent clickIntent = new Intent(context, ItemListActivity.class); PendingIntent clickPI = PendingIntent.getActivity(context, 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT); widget.setPendingIntentTemplate(R.id.widget_layout_parent, clickPI); appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds[i], R.id.widget_list_view);
¿Hay algo que me falta o hay algo más que te gustaría saber?
Toda la ayuda es apreciada! 🙂
- Ver - buscando un evento como en (Ver) Destruido
- Android habilita el botón Atrás en la vista web
- La superficie de la cámara Android se cambió constantemente
- cómo establecer el color de texto de webview en android
- ¿Por qué mi tamaño de fuente parece mucho más grande en el objeto de vista web android que cuando se ve en el navegador de Android?
- Establecer el ancho y la altura de la imagen en ImageView
- ¿Cómo escondo un WebView?
- ¿Cuál es la manera correcta de ampliar EditText para darle funcionalidad adicional "predeterminada"
Cuando llama a setPendingIntentTemplate(...)
, el id
debe ser el de AdapterView (en este caso el ListView). Cuando llamas a setOnClickFillInIntent(...)
, el id
debe ser el de la vista raíz del diseño del elemento, que es lo que ya estás haciendo si leo tu mensaje original correctamente.
public void onUpdate(Context context, AppWidgetManager manager, int[] appWidgetIds) { /* ... */ widget.setPendingIntentTemplate(R.id.appwidget_listview, clickPI); /* ... */ } public RemoteViews getViewAt(int position) { /* ... */ row.setOnClickFillInIntent(R.id.widget_layout_parent, intent); /* ... */ return row; }
Por encima de la respuesta por @ karakuri obras perfectas.
Ambos setPendingIntentTemplate y setOnClickFillInIntent deben utilizarse juntos. Uno no funcionará sin el otro.
- Android Listview Medir altura
- ¿Cómo puedo detectar / manejar una rotación de pantalla usando FireMonkey para Delphi XE5