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
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 SimpleCursorAdapter
) ID テーブルの行IDを返します。つまり、 _id
.
このトピックに関する他のいくつかの良い答えを次に示します。
他のヒント
?データ型が不明であり、あらゆるタイプになる可能性があることを意味します。