Java 使用 arraylist<string> 填充 Android 微调器

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20244419/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 00:32:05  来源:igfitidea点击:

Android spinner populating using arraylist<string>

javaandroidarraylist

提问by Shona

im to populate spinner using arraylist , and that arraylist actully holds data from the file having android application data stored already for t=my application, im pasting the code ,, problem is spinner populates but values appear twice

我使用 arraylist 填充微调器,并且该 arraylist 实际上保存了来自已为 t=my 应用程序存储的 android 应用程序数据的文件中的数据,我粘贴代码,问题是微调器填充但值出现两次

     String[] wee = list2.toArray(new String[list2.size()]);
     final String[] str={"Report 1","Report 2","Report 3","Report 4","Report 5"};
     ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
             this, android.R.layout.simple_spinner_item);
     spinnerArrayAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );

     for(int i = 0;i < wee.length; i++){
         spinnerArrayAdapter.add(wee[i]+"\n");
         spinnerArrayAdapter.notifyDataSetChanged();
     }

     // Spinner spinYear = (Spinner)findViewById(R.id.spin);
     spin.setAdapter(spinnerArrayAdapter);            

回答by Boban S.

Try to initialize your spinner adapter with array in constructor.

尝试在构造函数中使用数组初始化微调适配器。

String[] wee = list2.toArray(new String[list2.size()]);
final String[] str={"Report 1","Report 2","Report 3","Report 4","Report 5"};
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
         this, android.R.layout.simple_spinner_item, wee);
spinnerArrayAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );

// Spinner spinYear = (Spinner)findViewById(R.id.spin);
spin.setAdapter(spinnerArrayAdapter);

回答by katwal-Dipak

private void setSpinner() {
    spinner = (Spinner) findViewById(R.id.spinner_size);

    Intent intent = getIntent();

    ArrayList<String> sizes = null;

    if (intent != null) {
      // Receiving ArrayList in Another Activity where "sizeList" is the Key
        sizes = intent.getStringArrayListExtra("SizeList");
    }

    if (sizes != null) {

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, sizes);

        spinner.setAdapter(adapter);

        // Spinner click listener
        spinner.setOnItemSelectedListener(this);
    }


}

Call setSpinner() method from OnCreate() Method. You can directly pass ArrayList as a parameter, you don't need to convert into String[].

从 OnCreate() 方法调用 setSpinner() 方法。可以直接传入ArrayList作为参数,不需要转换成String[]。