AdapterView <! - ? - >在OnitemClick()方法中意味着什么?它的其他参数有什么用?

时间:2010-07-06 08:35:28

标签: android android-adapterview

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 个答案:

答案 0 :(得分:27)

<?>表示通用。详细了解他们here

以下是documentation对参数的说明:

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

  

parent 发生点击的AdapterView。

     

查看已点击的AdapterView中的视图(这将是适配器提供的视图)

     

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

     

id 点击的商品的行ID。

AdapterView可以是ListViewGridViewSpinner等。尖括号内的问号表示它可以是其中任何一个。这在Java中称为generics。您可以在代码中使用 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

位置视图的位置。对于ListView,它是行号。顶行是位置0,第二行是位置1,第三行是位置2,等等。请注意,如果您的ListView.addHeaderView(View)有标题视图(就像您ArrayAdapter那样),那么标题视图将是位置0,实际行将在1开始编号。

有时 id 位置相同,有时会有所不同。如果您使用的是SimpleAdapterCursorAdapter,那么它们是相同的(除非有标题视图然后它们被一个关闭)。对于SimpleCursorAdapter(以及_id), id 会返回表格的行ID,即{{1}}。

以下是关于此主题的一些其他好答案:

答案 1 :(得分:0)

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