1. ホーム
  2. android

[解決済み] OnitemClick()メソッドにおけるAdapterView<?>の意味は何ですか?その中の他のパラメーターの用途は?

2022-02-08 11:29:13

質問事項

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。

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

位置 アダプタ内でのビューの位置を指定します。

イド クリックされた項目の行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、2番目の行はポジション1、3番目の行はポジション2、などです。なお、もし ListView がヘッダービューを持つ場合(例えば ListView.addHeaderView(View) ) の場合、ヘッダービューの位置は 0 で、実際の行の番号は 1 から始まることになります。

時々 イド と同じです。 位置 と異なる場合があります。もし、あなたが ArrayAdapter または SimpleAdapter の場合、それらは同じです(ヘッダービューがあり、1つずつずれている場合を除く)。ヘッダービューの場合 CursorAdapter (結果的に SimpleCursorAdapter を使用します)。 イド は、テーブルの行IDを返す、ということです。 _id .

このトピックに関する他の良い回答はこちらです。