2017-01-18 6 views
1

Ich erhalte Index aus gebundener Ausnahme in der automatischen Vervollständigung Textview aufIndex aus gebundener Ausnahme in der automatischen Vervollständigung Textview

arg0.getItemAtPosition(position); 

während setOnItemClickListener verwenden.

Ich möchte die Zeichenfolge, die aus der Liste der Autocomplete Textansicht ausgewählt wurde.

ArrayList<String> servicaNameList = db.getServices(flag, editTextServiceName.getText().toString()); 
serviceAdapter = new ServiceAdapter(getApplicationContext(), R.layout.service_list, servicaNameList); 
editTextServiceName.setAdapter(serviceAdapter); 
editTextServiceName.setThreshold(1); 
editTextServiceName.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
     System.out.println("name = " + arg0.getItemAtPosition(position)); 
    } 
}); 

Dies ist der Adapter Klasse:

public class ServiceAdapter extends ArrayAdapter<String> { 
ArrayList<String> arrayList = new ArrayList<String>(); 
Context context; 
int layoutResourceId; 

public ServiceAdapter(Context context, int layoutResourceId, ArrayList<String> arrayList) { 
    super(context, layoutResourceId, arrayList); 
    this.arrayList = arrayList; 
    this.context = context; 
    this.layoutResourceId = layoutResourceId; 

} 

@Override 
public View getView(int position, View convertView, ViewGroup parrent) { 
    View view = convertView; 
    final ViewHolder holder; 

    if (view == null) { 
     LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = layoutInflater.inflate(layoutResourceId, parrent, false); 
     holder = new ViewHolder(); 
     holder.textView42 = (TextView) view.findViewById(R.id.textView42); 

     view.setTag(holder); 
    } else { 

     holder = (ViewHolder) view.getTag(); 
    } 

    String name = arrayList.get(position); 
    holder.textView42.setText(name); 
    return view; 
} 

static class ViewHolder { 
    TextView textView42; 
} 

}

enter image description here

+0

Beitrag der entsprechenden Code-Bits .. Auf dieser Grundlage das einzige, was jemand sagen kann 'arg0' weniger als' position' Anzahl der Elemente, weshalb Sie die Ausnahme – akash93

+0

erhalten geben Sie bitte sowohl Code und Protokolle –

+0

Geben Sie den ServiceAdapter-Code ein – John

Antwort

0

Hey Sie Position und Arraylist wie unter dem Punkt können ausgewählt werden.

ArrayList<String> servicaNameList = db.getServices(flag, editTextServiceName.getText().toString()); 
    serviceAdapter = new ServiceAdapter(getApplicationContext(), R.layout.service_list, servicaNameList); 
    editTextServiceName.setAdapter(serviceAdapter); 
    editTextServiceName.setThreshold(1); 
    editTextServiceName.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
      System.out.println("name = " + servicaNameList.get(position)); 
     } 
    }); 
+0

gibt den gleichen Fehler. –

Verwandte Themen