Android生成不带XML或R.array的微调器列表

Android生成不带XML或R.array的微调器列表,android,dynamic,spinner,listitem,arrays,Android,Dynamic,Spinner,Listitem,Arrays,我需要在微调器弹出窗口中动态生成值 具体来说,我显示了一个用户可以选择的年份列表。本年度为当前年度+未来12年 如果我使用strings.xml创建字符串数组,那么我已经在该数组中手动键入了列表项。从现在起的几年后,它仍然会显示出更老的年龄。我得推一个更新之类的。瘸子 我知道如何使用 int thisYear = Calendar.getInstance().get(Calendar.YEAR); 但我需要用今年+未来几年填充一个数组。这很容易做到,但Spinner的所有适配器类型都不希望采用

我需要在微调器弹出窗口中动态生成值

具体来说,我显示了一个用户可以选择的年份列表。本年度为当前年度+未来12年

如果我使用strings.xml创建字符串数组,那么我已经在该数组中手动键入了列表项。从现在起的几年后,它仍然会显示出更老的年龄。我得推一个更新之类的。瘸子

我知道如何使用

int thisYear = Calendar.getInstance().get(Calendar.YEAR);
但我需要用今年+未来几年填充一个数组。这很容易做到,但Spinner的所有适配器类型都不希望采用int数组或字符串数组

我需要一个显示动态生成的项目的微调器。strings.xml包含预先键入的列表项,因此我无法使用它


帮助?

您是否尝试过将它们作为字符串化版本的ints一次添加一个

我还没有试过编译这个,但类似的东西应该可以:

int thisYear = Calendar.getInstance().get(Calendar.YEAR);
for (int i = 0; i < 12; i++) {
  adapter.add(Integer.toString(thisYear + i));
}
int thiswear=Calendar.getInstance().get(Calendar.YEAR);
对于(int i=0;i<12;i++){
add(Integer.toString(thiswear+i));
}

然后,如果您需要将它们作为int返回,请使用
Integer.parseInt()

您是否尝试过将它们作为int的字符串化版本一次添加一个

我还没有试过编译这个,但类似的东西应该可以:

int thisYear = Calendar.getInstance().get(Calendar.YEAR);
for (int i = 0; i < 12; i++) {
  adapter.add(Integer.toString(thisYear + i));
}
int thiswear=Calendar.getInstance().get(Calendar.YEAR);
对于(int i=0;i<12;i++){
add(Integer.toString(thiswear+i));
}

然后,如果您需要将它们作为int返回,请使用
Integer.parseInt()

您可以扩展SpinnerAdapter(或BaseAdapter或ArrayAdapter)类,并对它们执行任何需要的操作。

您可以扩展SpinnerAdapter(或BaseAdapter或ArrayAdapter)类并对它们执行任何需要的操作。

您能详细说明我在这个问题的上下文中会做什么吗?您能详细说明我在这个问题的上下文中会做什么吗?啊,是的,我理解,但我不知道如何声明和初始化适配器!我初始化它们的方式是从R.array.expYr中的strings.xml文件中提取一段ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.expYr,android.R.layout.simple_微调器_项);'我得到了它。在生成字符串后,我必须执行新的ArrayAdapter并向其中添加字符串引用,而不是createFromResource<代码>字符串年份[]=新字符串[12];int thiswear=Calendar.getInstance().get(Calendar.YEAR);对于(int i=0;i<12;i++){years[i]=Integer.toString(thisYear);thisYear=thisYear+1;}ArrayAdapter expYearAdapter=new ArrayAdapter(这是android.R.layout.simple_微调器项目,years)啊,是的,我理解,但我不知道如何声明和初始化适配器!我初始化它们的方式是从R.array.expYr中的strings.xml文件中提取一段ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.expYr,android.R.layout.simple_微调器_项);'我得到了它。在生成字符串后,我必须执行新的ArrayAdapter并向其中添加字符串引用,而不是createFromResource<代码>字符串年份[]=新字符串[12];int thiswear=Calendar.getInstance().get(Calendar.YEAR);对于(int i=0;i<12;i++){years[i]=Integer.toString(thisYear);thisYear=thisYear+1;}ArrayAdapter expYearAdapter=new ArrayAdapter(这是android.R.layout.simple_微调器项目,years)