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)
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相同,有时它不同。如果您使用的是ArrayAdapter
orSimpleAdapter
那么它们是相同的(除非有一个标题视图然后它们被关闭)。对于 a CursorAdapter
(以及因此 a SimpleCursorAdapter
),id返回表的行 id,即_id
。
以下是有关此主题的其他一些不错的答案:
这 ?表示数据类型未知,可以是任何类型。