0

アプリケーションで AutoCompleteTextView を使用していますが、予期せず動作します。オートコンプリート リストには、探していないリストからの不要なテキストが表示されますが、このテキストを選択して autocomletetextview からフォーカスを削除すると、適切なテキストが autocompletetext フィールドに設定されます。もう1つの問題は、オートコンプリートテキストフィールドで選択したテキストのIDを取得したいということです。オートコンプリートテキストビューのカスタムアダプターにリストを作成するときに、このIDを関連付けています。これが私が使用しているコードです。

autoComMarker = (AutoCompleteTextView) findViewById(R.id.auto_rainfall_of_markaz_id);
autoComMarker.setThreshold(1);
CustomMarkazAdapter adapter = new CustomMarkazAdapter(getBaseContext(),     R.layout.custom_auto_com_listview, marqazList);
autoComMarker.setAdapter(adapter);


autoComMarker.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View view,
                int position, long arg3) {
            autoComMarker.setTag(view.getTag());
            Log.e("Markaz list", ""+view.getTag());
        }
    });

CustomMarkazAdapter のコードは次のとおりです。

public class CustomMarkazAdapter extends ArrayAdapter<Markaz>{

private ArrayList<Markaz> items;
private Context CurrentContext;
private Markaz CurrentItem;

public CustomMarkazAdapter(Context context, int textViewResourceId,
        ArrayList<Markaz> objects) {
    super(context, textViewResourceId, objects);

    items =  objects;
    CurrentContext = context;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

     if ((items == null) || ((position + 1) > items.size()))
        return convertView; //Can't extract item

   CurrentItem = (Markaz)items.get(position);    

    LayoutInflater vi = (LayoutInflater)CurrentContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = vi.inflate(R.layout.custom_auto_com_listview, null);      
    TextView text = (TextView) convertView.findViewById(R.id.custom_auto_com_text);

    text.setText(CurrentItem.getMarkazName());
    convertView.setTag(CurrentItem.getMarkazID());
    Log.e(CurrentItem.getMarkazName(),""+CurrentItem.getMarkazID());
    return convertView;
}

}

ここで設定している markazID は、私が探しているものではありません。autocompletelistview アイテムの位置に従って markaz id を設定します。これは必要ありません。markazList で渡される markaz id が必要です。私を助けてください、どんな助けでも大歓迎です。

4

2 に答える 2

0

positionで選択したアイテムのを取得する必要がありlistviewます。以下のようにこれを行いますautoComMarker.setOnItemClickListener()

  Markaz items= adapter.getItem(position);
于 2013-02-08T05:32:39.453 に答える
0

これを試して。

  autoComMarker.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0, View view,
                    int position, long arg3) {
               Markaz items= adapter.getItem(position);
               //Now you can get items of Markaz from items.get...
            }
        });
于 2013-02-08T05:28:27.943 に答える