adapterview <?>は、onitemclick()メソッドとはどういう意味ですか?その中の他のパラメーターの使用は何ですか?

StackOverflow https://stackoverflow.com/questions/3184672

  •  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 a ListView, GridView, Spinner, など。角度ブラケット内の疑問符は、それがそれらのいずれかである可能性があることを示しています。これは呼ばれます ジェネリック Javaで。使用できます コードでは、全体に何かを行うことができます。たとえば、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();

ポジション の位置です 見る の中に . 。のために ListView, 、それは行番号です。一番上の行は位置0、2番目の行は位置1、3番目の行は位置2などです。 ListView ヘッダービューがあります(あなたがした場合のように ListView.addHeaderView(View))その後、ヘッダービューは位置0になり、実際の行は1で番号付けを開始します。

時々 ID と同じです ポジション そして時々それは異なります。あなたが使用している場合 ArrayAdapter また SimpleAdapter その後、それらは同じです(ヘッダービューがある場合を除き、それらは1つずつオフになります)。のために CursorAdapter (そしてその結果、a SimpleCursorAdapterID テーブルの行IDを返します。つまり、 _id.

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

他のヒント

?データ型が不明であり、あらゆるタイプになる可能性があることを意味します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top