web-dev-qa-db-ja.com

OnitemClick()メソッドでの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();
        }
    });
31
Nandagopal T

_<?>_はジェネリックを示します。それらについてもっと読む ここ

documentation がパラメータについて言うことは次のとおりです。

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

parentクリックが発生したAdapterView。

viewクリックされたAdapterView内のビュー(これは、アダプターによって提供されるビューになります)

positionアダプター内のビューの位置。

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();
_

positionは、(==-)内のviewListViewの場合は、行番号です。上の行は位置0、2番目の行は位置1、3番目の行は位置2などです。ListViewにヘッダービューがある場合(ListView.addHeaderView(View)の場合と同様)すると、ヘッダービューの位置は0になり、実際の行の番号は1から始まります。

idpositionと同じ場合もあれば、異なる場合もあります。 ArrayAdapterまたはSimpleAdapterを使用している場合、それらは同じです(ヘッダービューがあり、1つずれている場合を除く)。 CursorAdapter(したがってSimpleCursorAdapter)の場合、idはテーブルの行IDを返します。つまり、 __id_。

このトピックに関する他のいくつかの良い答えを次に示します。

28
Matty F

?データ型は不明であり、どの型でもかまいません。

0
anon