对于某些人来说,这可能是一件简单易事的事情.
我有这个代码……
sqliteDatabase db = dbs.getReadableDatabase(); String sql = "SELECT * FROM Table"; final Cursor cursor = db.rawQuery(sql,null); array_spinner1[0] = "Select:"; while (cursor.moveToNext()) { array_spinner1[i]= cursor.getString(1) + " - " + cursor.getString(2); i ++; } final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,array_spinner1); s1.setAdapter(adapter);
我填充数组,一切运行正常.但是,我想在第一个项目(选择)处开始微调器的位置.我希望它从光标中的项目”here’开始,例如.我希望我有意义吗?
将其放入“表格”第1列的上下文中的是年龄范围,第2列是年龄范围.
所以在微调器中我得到0-5,6-10,11-20等
如果用户的d.o.b让他那个年龄……我想要做的是开始在11-20选择的微调器?我知道setSelection会选择一个特定的值,但我需要为用户年龄找出正确的值吗?
所以我基本上想知道如何工作并填充正确选择微调器,谢谢
解决方法
Spinner类从AbsSpinner继承setSelection(int position,boolean animate).使用所需默认位置调用该方法(对于动画位,调用false).你只需要遍历你的可能值列表来检查条件,所以也许我不明白你的困难在哪里?
通过这次阅读,我得到的印象是,这不是一个Android问题.您正在寻找的是如何查看给定的出生日期是否将用户置于给定的年龄段.我在Joda看过年龄数学:How do I calculate someone’s age in Java?
从那里可以看出年龄是否在你给定的范围内.
boolean isInRange(Years age,int start,int end) { int intAge = age.getYears(); if (intAge >= start && intAge <= end) { return true; } else { return false; } }
我的答案还有一个补充.如果你不想在Android上运行Joda,那么这是另一种仅使用标准Java组件计算年龄的可能性.见第三篇文章.
http://www.coderanch.com/t/391834/java/java/there-better-way-calculate-age
根据您的示例请求,这里是日期字符串的SimpleDateFormat.
String dateString = "04/02/2004"; SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); Date parsedDate = format.parse(dateString,1);