我是 Android 的新手,我正在尝试以编程方式创建一个微调器并用数组中的数据为其提供数据,但是 Eclipse 给了我一个我无法处理的警告。
这是我得到的:
此 ArrayList 包含应该在微调器中的元素(稍后从文件中填充): ArrayList
这是我在应该创建微调器的网站上找到的代码:
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"
,我不知道如何解决这个问题(或者这首先意味着什么 :))。
这只是一个警告,应用程序似乎运行正常,但我仍然想了解问题所在并修复它。任何提示表示赞赏。
问候, Select0r
ArrayAdapter<String>
应该可以工作。
IE:
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);
与 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);
以下 3 行代码 为我工作,其中包含从项目资源加载的名为 shoes
的 string-array:
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
),其中的 string-array 名为 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>
如有必要,使用这种方法很容易使其成为多语言。
这实际上对我有用
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);
Spinner spinner = new Spinner(this);
的目的是什么spinner = (Spinner) findViewById( R.id.spinner );
这对我有用:-
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
}
Type safety: The expression of type ArrayAdapter needs unchecked conversion to conform to ArrayAdapter<String>
<String>
,您的代码现在可以工作了,非常感谢!ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(activity, R.layout.simple_spinner_item); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
,否则某些设备上的微调器中可能会显示单选按钮。