2012-01-24 18 views
1

私はCallLogを使用しています。私の変数の1つをダイヤルした連絡先のCACHED_NAMEに設定しています。これは正常に動作しますが、ユーザが連絡先にない番号をダイヤルした場合は、代わりに変数をNUMBERの値に設定します。私はこれを行うとき何らかの理由で、 "1"や "7"のような1桁の整数として結果を得ます。ここに私のコードは次のとおりです。コール番号に数字が正しく入力されていません

Uri allCalls = Uri.parse("content://call_log/calls"); 
    String sortOrder = CallLog.Calls.DATE; 
    Cursor c = managedQuery(allCalls, null, null, null, sortOrder); 

    while (c.moveToNext()) { 

     int callType = Integer.parseInt(c.getString(c 
       .getColumnIndex(CallLog.Calls.TYPE))); 
     long date = c.getLong(c.getColumnIndex(Calls.DATE)); 
     String col1; 

     if (callType == CallLog.Calls.OUTGOING_TYPE 
       && date > resetDate) { 

       col1 = c.getString(c.getColumnIndex(Calls.CACHED_NAME)); 
       // if there is no cached name, get the number 
       if (col1 == null) { 
        col1 = String.valueOf(c.getLong(c 
          .getColumnIndex(Calls.NUMBER))); 
       } 

は私が右NUMBERの値は、ユーザがダイヤルした電話番号でなければならないことを言っにいますか?最後の行を除いてすべてが正しいことを知っています。私はcol1を数値に設定しています。何か案は?

答えて

1

あなたがgetStringを使用しなければならないときは、電話番号をgetLongを使用している:

col1 = c.getString(c.getColumnIndex(Calls.CACHED_NAME)); 
// if there is no cached name, get the number 
if (col1 == null) { 
    col1 = String.valueOf(c.getString(c 
     .getColumnIndex(Calls.NUMBER))); 
} 
+0

何ルーキーミスを!とにかく何か別のことをやってしまいましたが、答えに感謝します。 –

関連する問題