我是Java新手,目前正在编写Android应用程序。在我的“快捷方式”课程中,我有一些代码(当然更多,但对你没用,我不认为):
final String[] items = new String[]{ "Please select a category",scanner.getCategorys() };
@SuppressWarnings({ "unchecked", "rawtypes" })
ArrayAdapter<CharSequence> adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
selection.setAdapter(adapter);
我有另一个名为“Scanner”的类,它有以下代码:
String categorys = "test";
public String getCategorys() {
return categorys;
}
这确实有效,在我的Spinner中,我可以用单个值填写我的“请选择一个类别”选项(即“测试”)。问题是,我希望能够选择多个类别。如果我在“快捷方式”类中执行此操作:
final String[] items = new String[]{ "Please select a category","test","test2" };
它会起作用,但我想从“扫描仪”类中设置它,所以我尝试了这个:
String[] categorys = "test","test2";
public String[] getCategorys() {
return categorys;
}
但它只是给了我错误:
String cannot be converted to String[]
如果有任何帮助,我将不胜感激。
答案 0 :(得分:2)
这是错误的:
String[] categorys = "test","test2";
将其更改为
String[] categorys = {"test","test2"};
答案 1 :(得分:1)
在上一个代码示例中,您必须将{ }
放在字符串周围,如下所示:
String[] categorys = { "test","test2" };
public String[] getCategorys() {
return categorys;
}
根据您上面的编辑,您无法将String []添加到现有的String []。您需要将从getCategorys()
获取的String []中的每个项目添加到另一个数组中。在这种情况下,我可能会切换到ArrayList<string>
,因此您不必决定数组的大小,然后添加每个项目。
答案 2 :(得分:1)
您可以按如下方式初始化类别
String[] categorys = {"test","test2"};
我将变量称为&#39;类别&#39;。
编辑: scanner.getCategorys()不能用作构造函数需要String而不是字符串数组。一个好主意是使用ArrayList,如uncocoder所指出的那样。然后,您可以使用添加方法来包含&#34;请选择一个类别&#34;。
答案 3 :(得分:0)
我建议使用ArrayList,这样快速简单
ArrayList<String> strings = new ArrayList<String>();
strings.add("SOME TEXT");
strings.get(0);
//and more