Android:从数组中编程创建旋转器

我对Android都是新的,我试图以编程方式创建一个旋转器,并从数组中提供数据,但Eclipse给了我一个警告,我不能处理。

以下是我得到的答案:

这个数组列表保存了应该在旋转器中的元素 稍后从文件中填充):

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);

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

这只是一个警告,应用程序似乎运行正常,但我仍然想了解什么是错误的,并解决它。任何提示都很感激。

< p >问候, Select0r < / p >
357098 次浏览

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);

这对我来说很管用

    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 = (Spinner) findViewById( R.id.spinner );
spinner.setAdapter(spinnerArrayAdapter);

以同样的方式处理数组

// 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);

下面的3行代码为我工作,从项目资源中加载名为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);

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

<?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>

如果有必要的话,使用这种方法很容易实现多语言。

这对我很有用:-

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);

我正在使用一个片段。

在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
}