Search code examples
androidjsonautocompletetextview

How to get autocompletetextview id?


I follow this example to use autocmpletetextview in my project,i want to get id when user select any item,can anyone tell how to get id..

following is json response..so if click on ab then i want to get 1,if i click on abc i want to get 2..

MainActivity

public class MainActivity extends Activity {
private AutoCompleteTextView acTextView;
private String idtest;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    acTextView = (AutoCompleteTextView) findViewById(R.id.autoComplete);

    final SuggestionAdapter adapter=new SuggestionAdapter(this, acTextView.getText().toString());
    acTextView.setAdapter(adapter);


    acTextView.setOnItemClickListener(new OnItemClickListener() {



        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            JsonParse jps=new JsonParse();

            /* List<SuggestGetSet> list =jps.getParseJsonWCF(acTextView.getText().toString());

                for(int i = 0;i<list.size();i++)
                {
                  if(list.get(i).getName().equals(acTextView.getText().toString()))

                  idtest=list.get(position).getId();



                }
                   */




            SuggestGetSet  selectedSuggestGetSet = 
                     adapter.getAllUpdatedSuggestion().get(position);

            Toast.makeText(getApplicationContext(), selectedSuggestGetSet+acTextView.getText().toString(), Toast.LENGTH_SHORT).show();

        }
    });
}

adapter

public class SuggestionAdapter extends ArrayAdapter<String> {

protected static final String TAG = "SuggestionAdapter";
public List<String> suggestions;
private List<SuggestGetSet> new_suggestions;

public SuggestionAdapter(Activity context, String nameFilter) {
    super(context, android.R.layout.simple_dropdown_item_1line);
    suggestions = new ArrayList<String>();
}

@Override
public int getCount() {
    return suggestions.size();
}

@Override
public String getItem(int index) {
    return suggestions.get(index);
}

@Override
public Filter getFilter() {
    Filter myFilter = new Filter() {

        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults filterResults = new FilterResults();
            JsonParse jp=new JsonParse();
            if (constraint != null) {
                // A class that queries a web API, parses the data and
                // returns an ArrayList<GoEuroGetSet>
                new_suggestions =jp.getParseJsonWCF(constraint.toString());
                suggestions.clear();
                for (int i=0;i<new_suggestions.size();i++) {
                    suggestions.add(new_suggestions.get(i).getName());

                }

                // Now assign the values and count to the FilterResults
                // object
                filterResults.values = suggestions;
                filterResults.count = suggestions.size();
            }
            return filterResults;
        }

        @Override
        protected void publishResults(CharSequence contraint,
                FilterResults results) {
            if (results != null && results.count > 0) {
                notifyDataSetChanged();
            } else {
                notifyDataSetInvalidated();
            }
        }
    };
    return myFilter;
}

public List<SuggestGetSet>  getAllUpdatedSuggestion(){
      return this.new_suggestions;
    }

} response

{"results":[{"id":"1","name":"ab"},{"id":"2","name":"abc"},{"id":"3","name":"bc"},{"id":"4","name":"bcd"},{"id":"5","name":"cd"},{"id":"6","name":"cde"},{"id":"7","name":"ef"},{"id":"8","name":"efg"},{"id":"9","name":"hi"},{"id":"10","name":"hig"},{"id":"11","name":"jk"},{"id":"12","name":"jkl"},{"id":"13","name":"mn"},{"id":"14","name":"mno"},{"id":"15","name":"pq"},{"id":"16","name":"pqr"},{"id":"17","name":"st"},{"id":"18","name":"stu"},{"id":"19","name":"vw"},{"id":"20","name":"vwx"},{"id":"21","name":"yz"},{"id":"22","name":"yza"}]}

Solution

  • Put one method in adapter

    public Int getItemId(int index) {
        return suggestions.get(index).getId();
    }
    Then access it in onItemClick. You will getId from there by adapter.getItemId(position);