32
gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
        }
    });
4

2 回答 2

32

<?>表示通用。在此处阅读有关它们的更多信息。

以下是文档中有关参数的说明:

onItemClick(AdapterView<?> parent, View view, int position, long id)

parent 单击发生的 AdapterView。

view 被点击的 AdapterView 中的视图(这将是适配器提供的视图)

position 视图在适配器中的位置。

id 单击的项目的行 id。

AdapterView可以是ListView, GridView,等。Spinner尖括号内的问号表示它可以是其中的任何一个。这在 Java中称为泛型。您可以在代码中使用parent对整个视图执行某些操作。例如,如果您使用的是 a ,则可以通过以下代码行ListView隐藏整个:ListView

parent.setVisibility(View.GONE);

View指的是 中的特定项目AdapterView。在一个ListView它是行。因此,您可以通过这样说来获得对 a 的引用TextView

TextView myTextView = (TextView) view.findViewById(R.id.textView1);
String text = myTextView.getText().toString();

position视图parent中的位置。对于 a ListView,它是行号。第一行是位置 0,第二行是位置 1,第三行是位置 2,依此类推。请注意,如果您ListView有一个标题视图(就像您这样做ListView.addHeaderView(View)),那么标题视图将是位置 0,而实际行将从 1 开始编号。

有时id与position相同,有时它不同。如果您使用的是ArrayAdapterorSimpleAdapter那么它们是相同的(除非有一个标题视图然后它们被关闭)。对于 a CursorAdapter(以及因此 a SimpleCursorAdapter),id返回表的行 id,即_id

以下是有关此主题的其他一些不错的答案:

于 2010-07-06T10:16:40.980 回答
0

这 ?表示数据类型未知,可以是任何类型。

于 2010-07-06T08:41:06.730 回答