web-dev-qa-db-ja.com

配列で満たされたAutoCompletetextviewでアイテムの位置を見つける方法

配列(array1with States)とAutoCompleteTextviewがあり、そこにarray1AutocompleteTextViewから値を選択すると、AutoCompleteTextViewドロップダウンからstateが選択されます

私が欲しいのは、私が選択したarray1からアイテムのpositionを取得することです。
私が試したのはOnClickEventAutocompelteTextViewです。

STATE.setOnItemClickListener(new OnItemClickListener(){

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) {
        String selection = (String) parent.getItemAtPosition(position);
        String num = selection;
    }
});

ドロップダウンから選択した値が表示されますが、array1position of the valueを取得したいと思います。たとえば、array1 = {A、B、C、D}のようなサイズ4の配列があり、Bを選択すると、配列内のB位置、つまり2が返されます。

はっきりさせておきたいと思います。前もって感謝します。

19
raghav chopra

onItemClickposition変数を使用します。

STATE.setOnItemClickListener(new OnItemClickListener(){

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) {
        String selection = (String) parent.getItemAtPosition(position);
        int pos = -1;

        for (int i = 0; i < yourarray.length; i++) {
            if (yourarray[i].equals(selection)) {
                pos = i;
                break;
            }
        }
        System.out.println("Position " + pos); //check it now in Logcat
    }
});
28
Ram kiran

配列の代わりにリストを使用します。 AutoCompleteTextViewのonItemClickListenerを実装してから、リストでindexOfを使用して、選択したアイテムのインデックスを見つけます。

actvCity.setOnItemClickListener(new OnItemClickListener() {

     @Override
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
          long arg3) {
          int index = cityNames.indexOf(actvCity.getText().toString());
          // Do Whatever you want to do ;)
     }
});
2
SANAT
Item.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    //// id contains item if from database
                    ItemNoSelected = id;
                }
            });

idはデータベースからのものであり、それを使用できます

0
Vijay
            @Override
            public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
            {
                TextView txtvw=(TextView) view;
                String str=txtvw.getText().toString();
                int index = contactNames.indexOf(str);
            } 
0
Jasmine John