¿Qué AdapterView > Significa en el OnitemClick () Método? ¿Cuál es el uso de otros parámetros en ella?
-
02-10-2019 - |
Pregunta
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
Solución
El <?>
indica un genérico. Lea más sobre ellos aquí .
Esto es lo que la documentación dice acerca de los parámetros:
onItemClick(AdapterView<?> parent, View view, int position, long id)
principal El AdapterView donde el clic que pasó.
vista ??strong> La vista dentro de la AdapterView que se hizo clic (esto será una vista proporcionada por el adaptador)
posición La posición de la vista en el adaptador.
id La fila Identificación del elemento que se ha hecho clic.
El AdapterView
podría ser una ListView
, GridView
, Spinner
, etc. El signo de interrogación interior de los corchetes indica que podría ser cualquiera de ellos. Esto se llama genéricos en Java. Puede utilizar principal en el código para hacer algo para toda la vista. Por ejemplo, si estuviera usando un ListView
que podría ocultar toda la ListView
por la siguiente línea de código:
parent.setVisibility(View.GONE);
El View
se refiere a un elemento específico dentro de la AdapterView
. En una ListView
es la fila. De este modo, se puede obtener una referencia a un TextView
dentro de una fila diciendo algo como esto:
TextView myTextView = (TextView) view.findViewById(R.id.textView1);
String text = myTextView.getText().toString();
La posición es la posición de la vista ??strong> en el padre . Para una ListView
, es el número de fila. La fila superior es la posición 0, la segunda fila es la posición 1, la tercera fila es la posición 2, etc. Tenga en cuenta que si su ListView
tiene una vista de encabezamiento (como si lo hiciera ListView.addHeaderView(View)
), entonces la vista de encabezado sería la posición 0 y el real filas comenzarían su numeración a 1.
A veces id es la misma que posición y, a veces es diferente. Si está utilizando un ArrayAdapter
o SimpleAdapter
entonces ellos son los mismos (excepto en el caso de que hay una vista de encabezado y luego son fuera una). Para una CursorAdapter
(y por consiguiente un SimpleCursorAdapter
) la id devuelve el identificador de fila de la tabla, es decir, _id
.
Aquí están algunas otras respuestas buenas sobre este tema:
Otros consejos
El? medios que el tipo de datos es desconocida y puede ser cualquier tipo.