Что 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();
        }
    });
31
задан 6 revs, 4 users 56% 16 December 2015 в 01:39
поделиться

2 ответа

указывает на общий. Подробнее о них читайте здесь .

Вот что говорится в документации о параметрах:

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 .

Вот еще несколько хороших ответов по этой теме:

28
ответ дан 27 November 2019 в 22:46
поделиться

Значок? означает, что тип данных неизвестен и может быть любым.

0
ответ дан 27 November 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: