如何获取自动完成文本视图 ID?
How to get autocompletetextview id?
我按照this示例在我的项目中使用autocmpletetextview,我想在用户select任何项目时获取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"}]}
将您的建议列表更改为 public :
public List<String> suggestions;
然后在您的 itemClick 方法中获取所需的 ID :
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
your id = YourAdapter.suggestions[position].id;
}
How to get id of autocompletetextview item?
new_suggestions
包含所有想要获得 ListView 项目点击的项目。所以在 getFilter
方法之外声明它以便从其他 class:
访问
private List<String> suggestions;
private List<SuggestGetSet> new_suggestions ;
....
new_suggestions
在 getFilter
方法中初始化它:
...
new_suggestions =jp.getParseJsonWCF(constraint.toString());
suggestions.clear();
...
现在在里面创建一个方法 SuggestionAdapter
:
public List<SuggestGetSet> getAllUpdatedSuggestion(){
return this.new_suggestions;
}
最后在 onItemClick
中调用 getAllUpdatedSuggestion
方法:
final SuggestionAdapter adapter=new SuggestionAdapter(this,
acTextView.getText().toString())
acTextView.setAdapter(adapter);
并在 onItemClick
方法中:
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
SuggestGetSet selectedSuggestGetSet =
adapter.getAllUpdatedSuggestion().get(position);
}
selectedSuggestGetSet
将包含所选项目 name
和 id
将一种方法放入适配器中
public Int getItemId(int index) {
return suggestions.get(index).getId();
}
然后在 onItemClick 中访问它。你将从那里得到 Id
adapter.getItemId(位置);
检查这个
List<SuggestGetSet> new_suggestions = jp.getParseJsonWCF(constraint.toString());
并在您的适配器中使用 private List<SuggestGetSet> new_suggestions;
制作一个
我按照this示例在我的项目中使用autocmpletetextview,我想在用户select任何项目时获取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"}]}
将您的建议列表更改为 public :
public List<String> suggestions;
然后在您的 itemClick 方法中获取所需的 ID :
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
your id = YourAdapter.suggestions[position].id;
}
How to get id of autocompletetextview item?
new_suggestions
包含所有想要获得 ListView 项目点击的项目。所以在 getFilter
方法之外声明它以便从其他 class:
private List<String> suggestions;
private List<SuggestGetSet> new_suggestions ;
....
new_suggestions
在 getFilter
方法中初始化它:
...
new_suggestions =jp.getParseJsonWCF(constraint.toString());
suggestions.clear();
...
现在在里面创建一个方法 SuggestionAdapter
:
public List<SuggestGetSet> getAllUpdatedSuggestion(){
return this.new_suggestions;
}
最后在 onItemClick
中调用 getAllUpdatedSuggestion
方法:
final SuggestionAdapter adapter=new SuggestionAdapter(this,
acTextView.getText().toString())
acTextView.setAdapter(adapter);
并在 onItemClick
方法中:
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
SuggestGetSet selectedSuggestGetSet =
adapter.getAllUpdatedSuggestion().get(position);
}
selectedSuggestGetSet
将包含所选项目 name
和 id
将一种方法放入适配器中
public Int getItemId(int index) {
return suggestions.get(index).getId();
}
检查这个
List<SuggestGetSet> new_suggestions = jp.getParseJsonWCF(constraint.toString());
并在您的适配器中使用 private List<SuggestGetSet> new_suggestions;
制作一个