【发布时间】:2015-12-07 18:58:04
【问题描述】:
我按照this 示例在我的项目中使用 autocmpletetextview,我想在用户选择任何项目时获取 id,谁能告诉如何获取 id..
下面是json响应..所以如果点击ab然后我想得到1,如果我点击abc我想得到2..
主活动
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();
}
});
}
适配器
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;
}
} 回应
{"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"}]}
【问题讨论】:
-
你要哪个id?
-
我在回复中的 id..
-
the id which i have in my response: 在哪个响应中? -
在该示例中,他们从服务器获取名称和 ID,请参见此处webheavens.com/suggestion.php?name=
-
仔细看方法签名:
onItemClick(AdapterView<?> parent, View view, int position, long id)有id吗?
标签: android json autocompletetextview