Android微调器避免列表中的相同数据

时间:2015-01-17 06:17:57

标签: android spinner

我在Activity 1中有两个活动,当我点击一个特定的项目然后下一个活动启动时,微调器在点击的值里面,但是数据在下面是重复的。如何在我的字符串传递方法中避免重复请帮助我。

活动1

 View.OnClickListener enquiry_mercedez= new View.OnClickListener() {
            public void onClick(View v) {
              // it was the 1st button
                Intent intent = new Intent(v.getContext(), VehicleEnquiry.class);
                String proname="Mercedes S CLASS";
                intent.putExtra("vehicle", proname);
                startActivity(intent);

            }
          };  

活动2

 final String id = getIntent().getStringExtra("vehicle");    
ArrayAdapter<String> adapter;
            List<String> list;

            list = new ArrayList<String>();
            int index=list.indexOf(id);
            list.setSelection(index);
            list.add("Mercedes A CLASS");
            list.add("Mercedes B CLASS");
            list.add("Mercedes C CLASS");
            list.add("Mercedes S CLASS");

            adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, list);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            s1.setAdapter(adapter);

2 个答案:

答案 0 :(得分:1)

除非不选择不手动操作,即没有:

String proname="Mercedes S CLASS";
  intent.putExtra("vehicle", proname);  

在第二个活动中,添加所需的元素,然后检查proname是否与其中任何一个匹配。添加它或不相应地将其添加到列表中。

    final String id = getIntent().getStringExtra("vehicle");   
    list = new ArrayList<String>();
    list.add("Mercedes A CLASS");
    list.add("Mercedes B CLASS");
    list.add("Mercedes C CLASS");
    list.add("Mercedes S CLASS");

    boolean isInList =false;
    for (String string : list) {
        if(TextUtils.equals(string, id)){
            isInList = true;
        }
    }

    if(!isInList){
    list.add(id);
    }
//Rest of the code...

答案 1 :(得分:0)

首先获取从上一个活动传递的列表索引。将所有值添加到列表后,然后将其设置为选中的微调器值,如:

final String id = getIntent().getStringExtra("vehicle");    
ArrayAdapter<String> adapter;
        List<String> list;

        list = new ArrayList<String>();
        list.add("Mercedes A CLASS");
        list.add("Mercedes B CLASS");
        list.add("Mercedes C CLASS");
        list.add("Mercedes S CLASS");

        adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s1.setAdapter(adapter);
        int index=list.IndexOf(id);

s1.setSelection(index);