Android 选择自动完成项目时从服务器获取的id错误
我已经从服务器中的数据填充了我的Android 选择自动完成项目时从服务器获取的id错误,android,sql,autocomplete,Android,Sql,Autocomplete,我已经从服务器中的数据填充了我的AutCompleteTextView。从Autocomplete TextViewt中选择制造商并显示Toast以显示所选项目时,获取的基于服务器的id对于所选制造商是不正确的 例如: 如果我从自动完成下拉列表中选择“Voillant”,Toast会显示“Voillant”,但会得到“Worchester Borsch”(我的自动完成文本视图中的另一个制造商)的id @Override public void onItemClick(AdapterView<
AutCompleteTextView
。从Autocomplete TextViewt
中选择制造商并显示Toast以显示所选项目时,获取的基于服务器的id对于所选制造商是不正确的
例如:
如果我从自动完成下拉列表中选择“Voillant”,Toast会显示“Voillant”,但会得到“Worchester Borsch”(我的自动完成文本视图中的另一个制造商)的id
@Override
public void onItemClick(AdapterView<?> parent, View arg1,
int position, long arg3)
{
Toast.makeText(parent.getContext(), "Manufacturer is " + parent.getItemAtPosition(position).toString(),
Toast.LENGTH_LONG).show();
int theIdMan =idListMan.get(position);
conv_to_str_id_man = String.valueOf(theIdMan);
Log.d(" check id ", conv_to_str_id_man);
}
@覆盖
public void onItemClick(AdapterView父级,视图arg1,
整数位置,长arg3)
{
Toast.makeText(parent.getContext(),“制造商为”+parent.getItemAtPosition(position).toString(),
Toast.LENGTH_LONG).show();
int theIdMan=idListMan.get(位置);
conv_to_str_id_man=String.valueOf(theIdMan);
Log.d(“检查id”,conv_to_str_id_man);
}
获取id的代码
JSONArray JA=new JSONArray(result);
JSONObject json= null;
final List<Integer> idListMan = new ArrayList<Integer>(); // id saved in array list of Ints
final List<String> list2Man = new ArrayList<String>();
for(int i=0;i<JA.length();i++)
{
json=JA.getJSONObject(i);
idListMan.add(json.getInt("manufacturers_id")); //getting id from JSON
list2Man.add(json.getString("manufacturers_name"));
}
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.man_list_auto_com , list2Man);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
text.setThreshold(0);
text.setAdapter(dataAdapter);
text.setOnItemClickListener(new OnItemClickListener()
{
JSONArray JA=新的JSONArray(结果);
JSONObject json=null;
final List idListMan=new ArrayList();//保存在整数数组列表中的id
最终列表list2Man=新的ArrayList();
对于(int i=0;返回的位置是AutoCompleteTextView列表视图中的位置,可能与idListMan中的位置不匹配,这就是为什么使用getItemAtPosition。我尝试了get(position)
,现在Toast
显示“Worchester Borsch”及其id,即使我选择了“Voillant”。我使用getItemAtPosition
显示所选的确切制造商,但id不正确。请参阅我添加的代码,Luksprog(stackoverflow的一个有用成员)为我提供了该代码以获取基于服务器的id