2011-04-04 20 views
1

我需要動態生成微調彈出框內的值。Android生成無XML或R.array的微調列表

具體而言,我正在顯示一個供用戶選擇的年份列表。今年是今年+12年。

如果我使用strings.xml來創建一個字符串數組,然後我手動輸入了該數組中的列表項。幾年後,它仍然會顯示出更老的不相關的年份。我將不得不推出更新或其他東西。瘸。

我知道如何使用

int thisYear = Calendar.getInstance().get(Calendar.YEAR); 

得到整數形式本年度但我需要填充今年+未來幾年的數組。這很容易實現,但Spinner的適配器類型都不希望爲此提供int數組或字符串數​​組。

我需要一個微調器來顯示動態生成的項目。 strings.xml包含預先輸入的列表項,所以我不能使用它。

幫助?

回答

1

您是否曾嘗試將它們作爲一個整數的字符串版本一次添加?

我沒試過編譯這一點,但這樣的事情應該工作:

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

,然後如果你需要他們回來爲INT公司的出路,用Integer.parseInt()

+0

啊是的,我明白,但我不知道如何聲明和初始化適配器!我一直在初始化它們的方法是從R.array.expYr中的strings.xml文件中獲取一段。 'ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.expYr,android.R.layout.simple_spinner_item);' – CQM 2011-04-09 22:23:54

+0

我明白了。而不是createFromResource我必須做新的ArrayAdapter 並在我生成字符串後添加字符串引用。 'String years [] = new String [12]; \t \t int thisYear = Calendar.getInstance()。get(Calendar.YEAR); (int i = 0; i <12; i ++){ \t \t \t \t年[i] = Integer.toString(thisYear); \t \t \t thisYear = thisYear + 1; \t \t} \t \t \t \t ArrayAdapter expYearAdapter =新ArrayAdapter (這一點,android.R.layout.simple_spinner_item,年);' – CQM 2011-04-09 22:54:16

0

可以擴展SpinnerAdapter(或BaseAdapter或ArrayAdapter)類,並執行您需要的任何操作。

+0

你能上什麼,我會在這個問題的背景下做詳細點嗎? – CQM 2011-04-09 22:23:26