2011-02-24 6 views
6

これはおそらく単純な単純なことです。私はこのコードを持っているAndroid - Spinnerの設定スタートポイント

...

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); 

は、私は、配列を移入し、すべてが正常に動作します。しかし、最初の項目(選択)ではなく、スピナーの位置を開始したい。私はそれがカーソルの項目=「ここ」のどこから始めるのかを考えます。私は理にかなったと思いますか?

「表」の文脈に入れると、列1は年齢範囲、列2は年齢範囲です。 スピナーで私は0-5,6-10,11-20等を得ます

そして私がしたいことは、ユーザーのdobが彼の年齢を作るなら、11-20で選択されたスピナーを始めることです.... ?私はsetSelectionが特定の値を選択することを知っていますが、私はユーザーの年齢のために正しいものを解決する必要がありますか?

だから私は基本的にうまく、正しくスピナーを選択移入する方法を知りたい、感謝

答えて

8

スピナークラスはAbsSpinnerからsetSelection(int position, boolean animate)を継承します。そのメソッドを目的のデフォルトの位置(およびアニメーションビットの場合はfalse)で呼び出します。条件をチェックするためには、可能な値のリストを反復するだけで、難易度がどこにあるのか分かりません。

これをもう一度読んで、これは本当にAndroidの質問ではないという印象を受けます。あなたが探しているのは、与えられた誕生日が特定の年齢層にユーザーを配置するかどうかを調べる方法です。私は年齢計算がここでジョーダで行われたのを見ました: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; 
    } 
} 

もう1つ私の答えに追加しました。 AndroidでJodaを実行することに対処したくない場合は、標準Javaコンポーネントのみを使用して年齢を計算する別の方法があります。 3番目の記事を参照してください。例えば、あなたの要求ごと

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); 
+0

hmmm生年月日は文字列dd/mm/yyyyです。この年齢はどのようにするのですか? – Beginner

+0

SimpleDateFormatを使用して日付文字列をDate()オブジェクトに解析できます。 http://adload.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html –

+0

SimpleDateFormatをデモンストレーションするように編集されました。 –

0
String DOB = "04/02/2004"; 
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy"); 
Date parsedDate = format.parse(DOB, 0); 

Date dateNow = new Date(Date.getYear(),Date.getMonth(),Date.getDay()); 

Date dateDiff = dateNow - parsedDate; 
int Age = dateDiff.getYear(); 

if(Age>0 && Age<5){ 
pos = 0; 
}//etc.... 

s1.setSelection(pos, false); 

私はそれをチェックアウトしていないが、私はあなたが後にしていることのようにその何かを考えます。私は間違っているかもしれません。それを分でテストします。

+0

この問題を参照してください私はあなたの年齢> 0&&年齢<5 – Beginner

+0

の範囲を変更する可能性がありますように範囲を知っていません...私のコードcursor.getstring(1)は今0かもしれないが将来変更する可能性があります – Beginner

+0

まあ私はちょうど私のコードをチェックし、dateDiffはとにかく動作しません。 – AverageMarcus

関連する問題