Android:从数组编程创建微调器

Sel*_*t0r 182 android spinner

我是Android新手,我正在尝试以编程方式创建一个微调器并用数组中的数据提供它,但是Eclipse给了我一个我无法处理的警告.

这是我得到的:

这个ArrayList包含应该在微调器中的元素(稍后从文件中填充):

ArrayList<String> spinnerArray = new ArrayList<String>();

这是我在一个应该创建微调器的网站上找到的代码:

Spinner spinner = new Spinner(this);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
                android.R.layout.simple_spinner_dropdown_item,
                spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
Run Code Online (Sandbox Code Playgroud)

现在第二行(ArrayAdapter ...)在Eclipse中给我一个警告说"ArrayAdapter is a raw type... References to generic type ArrayAdapter<T> should be parameterized",我不知道如何解决这个问题(或者首先意味着什么:)).

这只是一个警告,应用程序似乎运行良好,但我仍然想了解什么是错误并修复它.任何提示都表示赞赏.

问候,Select0r

Bra*_*rke 372

ArrayAdapter<String> 应该管用.

即:

Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>
            (this, android.R.layout.simple_spinner_item,
           spinnerArray); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout
                                                     .simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter); 
Run Code Online (Sandbox Code Playgroud)

  • 使用`ArrayAdapter <String> spinnerArrayAdapter = new ArrayAdapter <String>(activity,R.layout.simple_spinner_item); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);`或者在某些设备上的微调器中可能会出现一个单选按钮. (23认同)
  • 编辑帖子时快速评论:)我错过了第二个`<String>`,你的代码现在正常工作,非常感谢! (2认同)

Yan*_*och 107

以与Array相同的方式

// Array of choices
String colors[] = {"Red","Blue","White","Yellow","Black", "Green","Purple","Orange","Grey"};

// Selection of the spinner
Spinner spinner = (Spinner) findViewById(R.id.myspinner);

// Application of the Array to the Spinner
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,   android.R.layout.simple_spinner_item, colors);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down view
spinner.setAdapter(spinnerArrayAdapter);
Run Code Online (Sandbox Code Playgroud)


Bru*_*eri 56

这对我来说是一个shoes从项目资源加载的名为" " 的字符串数组:

Spinner spinnerCountShoes = (Spinner)findViewById(R.id.spinner_countshoes);
ArrayAdapter<String> spinnerCountShoesArrayAdapter =
    new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, 
                             getResources().getStringArray(R.array.shoes));
spinnerCountShoes.setAdapter(spinnerCountShoesArrayAdapter);
Run Code Online (Sandbox Code Playgroud)

这是我的资源文件(res/values/arrays.xml),其中包含字符串数组:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="shoes">
        <item>0</item>
        <item>5</item>
        <item>10</item>
        <item>100</item>
        <item>1000</item>
        <item>10000</item>
    </string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)

使用这种方法可以更容易地使其多语言(如果需要).


Opy*_*Opy 36

这实际上对我有用

    Spinner spinner = new Spinner(this);
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_item, spinnerArray);
    spinnerArrayAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );

    spinner = (Spinner) findViewById( R.id.spinner );
    spinner.setAdapter(spinnerArrayAdapter);
Run Code Online (Sandbox Code Playgroud)

  • 这个'Spinner spinner = new Spinner(this)的目的是什么;`当你这样做时`spinner =(Spinner)findViewById(R.id.spinner);` (6认同)

小智 6

这项工作对我来说: -

String[] array = {"A", "B", "C"};
String abc = "";


Spinner spinner = new Spinner(getContext());
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, array); //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
Run Code Online (Sandbox Code Playgroud)

我正在使用片段.


Mic*_*cer 5

在 Kotlin 语言中,你可以这样做:

val values = arrayOf(
    "cat",
    "dog",
    "chicken"
)

ArrayAdapter(
    this,
    android.R.layout.simple_spinner_item,
    values
).also {
    it.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    spinner.adapter = it
}
Run Code Online (Sandbox Code Playgroud)