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中的视图(这将是适配器提供的视图)
位置 视图在适配器中的位置。
ID 点击项目的行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处开始编号。
有时 ID 是相同的 位置 有时它是不同的。如果您正在使用 ArrayAdapter
或者 SimpleAdapter
然后它们是相同的(除非有一个标头视图,然后它们就会偏离一个)。为一个 CursorAdapter
(因此 SimpleCursorAdapter
) 这 ID 返回表的行ID,也就是说 _id
.
这是有关此主题的其他一些好答案:
其他提示
这 ?意味着数据类型是未知的,并且可以是任何类型。