2017-01-18 2 views
1

j'obtiens indice à d'exception liée à autocomplete textview surindex hors d'exception liée à autocomplete textview

arg0.getItemAtPosition(position); 

tout en utilisant setOnItemClickListener.

Je veux obtenir la chaîne qui a été sélectionnée dans la liste de saisie de texte à saisie semi-automatique.

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)); 
    } 
}); 

C'est la classe d'adaptateur:

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

Affichez les bits de code pertinents .. Sur la base de ce seul chose que quelqu'un puisse dire est 'arg0' a' moins de nombre position' d'articles qui est la raison pour laquelle vous obtenez l'exception – akash93

+0

s'il vous plaît fournir à la fois le code et les journaux –

+0

donnez le code ServiceAdapter – John

Répondre

0

Hey vous pouvez utiliser comme position et arraylist ci-dessous pour l'élément sélectionné.

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

donnant la même erreur. –