如何显示翻新中的微调框

时间:2019-05-11 19:32:53

标签: android retrofit android-spinner

我有一个使用微调器的表单,我使用翻新2从数据库中获取的数据微调器,我有一个字段id_fishfish_name,我想显示出fish_name但id_fish保存在数据库中。

我成功在android微调器中显示了fish_name,但是当我要将表单保存到数据库中时是fish_name, 在微调器中显示的id_fish时如何保存fish_name html中的示例:

<select>
  <option value="001">Tuna</option>
  <option value="002">Shark</option>
  <option value="003">Dolphin</option>
<select>

这是我的功能

private initSpinner()
{
List<DataFish> dataFish= response.body().getData();
List<String> idFish = new ArrayList<String>();
                    List<String> fishName = new ArrayList<String>();
                    for (int i = 0; i < dataFish.size(); i++){

                        idFish.add(dataFish.get(i).getId_fish());
                        nameFish.add(dataFish.get(i).getFish_name());
                    }

                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(LelangActivity.this,
                            android.R.layout.simple_spinner_item, nameFish);
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    spinnerFish.setAdapter(adapter);
}

这是Spinner SetOnclickListener:

spinnerFish.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String fishName= parent.getItemAtPosition(position).toString();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

1 个答案:

答案 0 :(得分:0)

如果鱼名是唯一的,则可以在dataFish上进行搜索以获得相等的id。我的意思是在onItemSelected中写下这样的内容:

for (DataFish data : dataFish) {
    if (data.getFish_name().equls(fishName) {
       data.getId_fish(); //here is your fish id
    }
}

编辑:如果您提交的鱼名不是唯一的,并且具有相同名称的两条鱼有可能具有不同的ID,则必须为Spinner和getDropDownView方法实现自定义适配器定义选择哪种鱼。对于实施自定义适配器,您可以看到here