gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
>
указывает на общий. Подробнее о них читайте здесь .
Вот что говорится в документации о параметрах:
onItemClick (AdapterView > Parent, View view, int position, long id)
parent AdapterView, где щелчок произошел.
view Представление в AdapterView, по которому был выполнен щелчок (это будет представление, предоставленное адаптером)
position Положение представления в адаптере.
id Идентификатор строки элемента, по которому был выполнен щелчок.
AdapterView
может быть ListView
, GridView
, Spinner
и т. Д. Знак вопроса внутри угловых скобок указывает, что это может быть любой из них. В Java это называется дженериками . Вы можете использовать parent в коде, чтобы что-то сделать со всем представлением. Например, если вы использовали ListView
, вы могли бы скрыть весь ListView
с помощью следующей строки кода:
parent.setVisibility(View.GONE);
View
относится к определенному элементу в AdapterView
. В ListView
это строка. Таким образом, вы можете получить ссылку на TextView
внутри строки, сказав что-то вроде этого:
TextView myTextView = (TextView) view.findViewById(R.id.textView1);
String text = myTextView.getText().toString();
Позиция - это позиция представления в родитель .Для ListView
это номер строки. Верхняя строка - это позиция 0, вторая строка - позиция 1, третья строка - позиция 2 и т. Д. Обратите внимание, что если ваш ListView
имеет представление заголовка (например, если вы сделали ListView.addHeaderView ( View)
), то заголовок будет в позиции 0, а фактические строки будут начинать свою нумерацию с 1.
Иногда id совпадает с position , а иногда и это отличается. Если вы используете ArrayAdapter
или SimpleAdapter
, то они одинаковы (за исключением случая, когда есть представление заголовка, а затем они отключены на единицу). Для CursorAdapter
(и, следовательно, SimpleCursorAdapter
) id возвращает идентификатор строки таблицы, то есть _id
.
Вот еще несколько хороших ответов по этой теме:
Значок? означает, что тип данных неизвестен и может быть любым.