【问题标题】:Spinner duplication item error微调器重复项错误
【发布时间】:2017-01-27 17:07:35
【问题描述】:

如何删除微调器中的重复数据,因为当我再次选择微调器时,它会显示重复数据。请问有什么解决办法吗?

就像单击自行车时一样。它显示了其他微调器上所有自行车的详细信息。 然后我再次从那个微调器中选择,比如自行车或其他物品。它再次显示了自行车细节。包含自行车信息的其他旋转器上的信息重复。

例如,当我单击自行车时,它会显示 Honda yamaha suzuki other 然后我再次单击 Bike spinner,它将显示 Honda yamaha suzuki other Honda yamaha suzuki other。

spinner.setOnItemSelectedListener(this);
    spinner1.setOnItemSelectedListener(this);
    spinner3.setOnItemSelectedListener(this);
    spinner4.setOnItemSelectedListener(this);
    // Spinner Drop down elements
    vehicle_type.add("Select vehicle Type");
    vehicle_type.add("Bike");
    vehicle_type.add("Car");
    vehicle_type.add("Cycle");
    select_model.add("Select a Model");
    select_make.add("Select a Make");
    year.add("Select a Year");

// 为微调器创建适配器

    // Drop down layout style - list view with radio button


    ArrayAdapter<String> vehicle_type_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, vehicle_type);

    // Drop down layout style - list view with radio button
    vehicle_type_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner.setAdapter(vehicle_type_adapter);

    ArrayAdapter<String> select_make_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, select_make);

    select_make_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner1.setAdapter(select_make_adapter);
    ArrayAdapter<String> model_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, select_model);

    model_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner4.setAdapter(model_adapter);
    ArrayAdapter<String> year_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, year);

    year_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner3.setAdapter(year_adapter);


}


@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item
    String item = parent.getItemAtPosition(position).toString();
   // String item1=spinner1.getItemAtPosition(position).toString();

    if(item=="Bike")
    {



        select_make.add("Honda");
        select_make.add("suzuki");
        select_make.add("sohrab");
        select_make.add("Yamaha");
        select_make.add("Other");
        select_model.add("100cc");
        select_model.add("125cc");
        select_model.add("70cc");
        select_model.add("150cc");
        select_model.add("Other");
        int i = 2000;
        int j = 1;
        String vt;
        String yearr;
        year.add("Year");
        for (i = 2000; i <= 2017; i++) {
            yearr = String.valueOf(i);
            year.add(yearr);

        }

        ArrayAdapter<String> year_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, year);

        year_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinner3.setAdapter(year_adapter);
        ArrayAdapter<String> select_make_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, select_make);

       select_make_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinner1.setAdapter(select_make_adapter);
        ArrayAdapter<String> model_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, select_model);

        model_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinner4.setAdapter(model_adapter);
    }

【问题讨论】:

    标签: android spinner


    【解决方案1】:

    只需像这样编辑你的代码,....

    if(item=="Bike")
    {  //clear other spinner array list
       select_make.clear();
       select_model.clear();
       year.clear();
    
        select_make.add("Honda");
        select_make.add("suzuki");
        select_make.add("sohrab");
        select_make.add("Yamaha");
        select_make.add("Other");
        select_model.add("100cc");
        select_model.add("125cc");
        select_model.add("70cc");
        select_model.add("150cc");
        select_model.add("Other");
        int i = 2000;
        int j = 1;
        String vt;
        String yearr;
        year.add("Year");
        for (i = 2000; i <= 2017; i++) {
            yearr = String.valueOf(i);
            year.add(yearr);
    
        }
    

    然后你为什么要再次分配适配器?..你不需要这样做...只是停止进一步编码...设置一次适配器就足够了

    【讨论】:

    • @WaleedAsim 欢迎您的兄弟,与其对任何人表示感谢,不如尝试通过支持、反对或批准答案来表达您的感受。我告诉你不是因为我想投票,而是因为欣赏某人是一个好习惯。谢谢。
    • 验证这个答案是否有效@WaleedAsim 它会帮助其他人..
    猜你喜欢
    • 2021-12-28
    • 2017-04-07
    • 1970-01-01
    • 2012-07-03
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    相关资源
    最近更新 更多