Что означает AdapterView > В методе OnitemClick ()? Какое использование других параметров в нем?
-
02-10-2019 - |
Вопрос
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)
родительский Адаптервью, где произошел щелчок.
Посмотреть Просмотр в адаптере, который был нажат (это будет представление, предоставленное адаптером)
позиция Положение вида в адаптере.
я бы Идентификатор строки элемента, который был нажат.
А AdapterView
может быть ListView
, GridView
, Spinner
, и т. д. знак вопроса внутри угловых кронштейнов указывает, что это может быть любой из них. Это называется дженерики на 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.
Иногда я бы такой же как позиция И иногда это другое. Если вы используете ArrayAdapter
или SimpleAdapter
Тогда они одинаковы (за исключением случаев, когда есть представление заголовка, а затем они отключены к одному). Для CursorAdapter
(и, следовательно, SimpleCursorAdapter
) я бы возвращает идентификатор строки таблицы, то есть _id
.
Вот несколько других хороших ответов на эту тему:
Другие советы
? означает, что датат неизвестен и может быть любой тип.