final String[] sortText = new String[]{"Date Uploaded", "File Name", "Up-loader", "File Size"};
Spinner sort = (Spinner) v.findViewById(R.id.sort);
sort.setAdapter(new ArrayAdapter<>(context, R.layout.sort_row_layout, R.id.sortTV, sortText));
我遇到的问题是,当我从资源中提取数组时尝试设置适配器时无法创建构造函数,因此我可以实现国际化并使用不同语言显示文本。
<resources>
<array name="sort">
<item>Date Uploaded</item>
<item>File Name</item>
<item>Up-loader</item>
<item>File Size</item>
</array>
</resources>
sort.setAdapter(new ArrayAdapter<>(context, R.layout.sort_row_layout, R.id.sortTV, R.array.sort));
这里的问题是什么?
答案 0 :(得分:0)
ArrayAdapter没有可以将引用传递给数组资源的构造函数。请参阅docs
您希望使用createFromResource()
和setDropDownViewResource()
,如下所示:
ArrayAdapter<CharSequence> sortAdapter = ArrayAdapter.createFromResource(context, R.array.sort, R.layout.sortTV);
sortAdapter.setDropDownViewResource(R.layout.sort_row_layout);
sort.setAdapter(sortAdapter);
修改强>
对于标准,系统默认样式Spinner只使用内置布局:
ArrayAdapter<CharSequence> sortAdapter = ArrayAdapter.createFromResource(context, R.array.sort, android.R.layout.simple_spinner_item);
sortAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sort.setAdapter(sortAdapter);