22

配列(array1 with States)がありAutoCompleteTextview、その中にarray1を入力しています。から値を選択するときは、AutoCompleteTextViewドロップダウンからAutocompleteTextViewを選択しますstate

私が欲しいのは、私が選択したarray1からアイテムの位置を取得することです。 私が試したのはです。
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;
    }
});

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

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

4

5 に答える 5

31

位置変数を使用しますonItemClick

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
    }
});
于 2012-11-29T08:43:11.730 に答える
3

配列の代わりにリストを使用します。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 ;)
     }
});
于 2014-11-18T08:58:56.257 に答える
0
            @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);
            } 
于 2015-05-14T05:30:05.967 に答える
0
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はデータベースからのものであり、それを使用できます

于 2015-07-07T06:59:30.497 に答える
-2

親文字列はclickItemリスナーにあります。この場合のOSchoolsはカスタムArrayListです。

Object item = parent.getItemAtPosition(position);
for(OSchools d : data){
Log.e("name",d.getName());
String name = d.getName();
if(d.getName() != null && name.contains(item.toString())){
       ID = d.getID();
}
于 2018-11-22T16:34:49.623 に答える