Что означает AdapterView в методе OnitemClick ()? Какая польза от других параметров в нем?
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
2 ответов
на <?> указывает на общую. Подробнее о них здесь.
здесь документация говорит о параметрах:
onItemClick(AdapterView<?> parent, View view, int position, long id)
родитель AdapterView, где произошел щелчок.
посмотреть представление в AdapterView, который был нажат (это будет представление, предоставленное адаптером)
позиция положение представления в адаптере.
id идентификатор строки элемента, который был нажат.
на AdapterView может быть ListView, GridView, Spinner, etc. Вопросительный знак внутри угловых скобок указывает, что это может быть любой из них. Это называется дженериков в Java. Вы можете использовать родитель в коде, чтобы сделать что-то со всем представлением. Например, если бы Вы были с помощью 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 это то же самое, что позиция и иногда это другое. Если вы используете ArrayAdapter или SimpleAdapter тогда они одинаковы (за исключением случая, когда есть вид заголовка, а затем они отключены на один). Для CursorAdapter (и, следовательно, a SimpleCursorAdapter) в id возвращает идентификатор строки таблицы, то есть _id.
вот еще несколько хороших ответов на эту тему: