AutoCompleteTextViewでsetOnItemClickListenerを呼び出すパラメータの説明について
AutoCompleteTextViewの古典的な呼び出し、多くの投稿が紹介されています.例えば、次のようにします.
しかし、多くの投稿の紹介もここまでですが、実際に検索したエントリをクリックしてエントリが表す内容を表示したいので、AutoCompleteTextViewを呼び出す必要があります.setOnItemClickListener()メソッドは、次のcodeの例を示します.
AutoCompleteTextViewボックスに検索したいキーワードを入力すると、そのキーワードに一致するエントリがドロップダウンリストに表示されます.興味のあるエントリをクリックすると、上のcodeのsetOnItemClickListenerメソッドのonItemClick()メソッドが呼び出されます.上のcodeのパラメータは次のように紹介されています:1、new AdapterView.OnItemClickListener()ここでなぜnew?これは私たちが実際にキーワードに基づいて検索した「ドロップダウンリスト」が新しいListViewであるためです.ここでのAdapterViewはこの新しいListViewです(ここで使用しているAdapterは全文の第1段の例として使用されているArrayAdapterなので、第2段のcodeでもこのArrayAdapterに基づいています.Adapterの定義が異なる場合、AdapterViewが対応するのはListViewではなく、あなたが定義したAdapterが対応するViewかもしれません.)2、public void onItemClick(AdapterView>parent,View,int position,long id)は1の分析に基づいて、ここのparentはこのListViewである.2番目のパラメータviewは、「ドロップダウンリスト」でクリックした「エントリ」を指し、ListViewでは「エントリ」のViewはTextViewです.3番目のパラメータ、4番目のパラメータは、あなたがクリックした「エントリ」のドロップダウンリストの位置とエントリのidです.もし私たちが本明細書の例で例を挙げると、このpostionとidは実際には同じです.ただし、AdapterとAdapterViewの定義が異なる場合は、両者が異なる場合があります.具体的にはAPI Referenceの定義:position The position of the view in the adapterを参照してください.id The row id of the item that was clicked. 皆さんは分かりましたか?
public class CountriesActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.countries);
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setAdapter(adapter);
}
private static final String[] COUNTRIES = new String[] {
"Belgium", "France", "Italy", "Germany", "Spain"
};
}
しかし、多くの投稿の紹介もここまでですが、実際に検索したエントリをクリックしてエントリが表す内容を表示したいので、AutoCompleteTextViewを呼び出す必要があります.setOnItemClickListener()メソッドは、次のcodeの例を示します.
mAutoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView> parent, View view,
int position, long id) {
ListView listview = (ListView) parent;
ArrayAdapter adapter = (ArrayAdapter) parent.getAdapter();
TextView textview = (TextView) view;
}});
AutoCompleteTextViewボックスに検索したいキーワードを入力すると、そのキーワードに一致するエントリがドロップダウンリストに表示されます.興味のあるエントリをクリックすると、上のcodeのsetOnItemClickListenerメソッドのonItemClick()メソッドが呼び出されます.上のcodeのパラメータは次のように紹介されています:1、new AdapterView.OnItemClickListener()ここでなぜnew?これは私たちが実際にキーワードに基づいて検索した「ドロップダウンリスト」が新しいListViewであるためです.ここでのAdapterViewはこの新しいListViewです(ここで使用しているAdapterは全文の第1段の例として使用されているArrayAdapterなので、第2段のcodeでもこのArrayAdapterに基づいています.Adapterの定義が異なる場合、AdapterViewが対応するのはListViewではなく、あなたが定義したAdapterが対応するViewかもしれません.)2、public void onItemClick(AdapterView>parent,View,int position,long id)は1の分析に基づいて、ここのparentはこのListViewである.2番目のパラメータviewは、「ドロップダウンリスト」でクリックした「エントリ」を指し、ListViewでは「エントリ」のViewはTextViewです.3番目のパラメータ、4番目のパラメータは、あなたがクリックした「エントリ」のドロップダウンリストの位置とエントリのidです.もし私たちが本明細書の例で例を挙げると、このpostionとidは実際には同じです.ただし、AdapterとAdapterViewの定義が異なる場合は、両者が異なる場合があります.具体的にはAPI Referenceの定義:position The position of the view in the adapterを参照してください.id The row id of the item that was clicked. 皆さんは分かりましたか?