2012-02-09 3 views
0

私の最初のAndroidアプリで作業しています。 私はCallLog contentproviderから呼び出しを引き出し、カーソルアダプタを使用して表示しています。 私はbindViewとnewViewをオーバーライドしました。 SimpleCursorAdapterを使用していないので、日付の書式を設定する必要があります。私はAndroidには新しいので、愚かな間違いを起こしやすい。 :) 私はこのコードを使用して、メインのアクティビティでこのcursorAdapterを呼び出しています。 アプリがクラッシュする - CursorAdapterを延長する

public void bindView(View view, Context context, Cursor cursor) { 
    displayDate(view, date); 
} 

private void displayDate(View view, String strDate) { 
    final long timestamp = Long.parseLong(strDate); 
    final String formattedDate = DATEFORMAT.format(new Date(timestamp)); 
    final TextView t = (TextView) view.findViewById(R.id.date_text); 
    t.setText(formattedDate); 
} 

public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    final View view = LayoutInflater.from(context).inflate(R.layout.scratch_layout2, parent, false); 
    return view; 
} 

しかし、私のアプリがクラッシュし、それが始まる前に


startManagingCursor(calls); 
adapter = new CallsAdapter(this, calls); 
setListAdapter(adapter); 

編集済み - エラーログを記録します。

ERROR/AndroidRuntime(12885): Uncaught handler: thread main exiting due to uncaught exception 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.amannain.android.missedcalls/com.amannain.android.missedcalls.MissedCallsActivity}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.ActivityThread.access$1800(ActivityThread.java:112) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.os.Looper.loop(Looper.java:123) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.ActivityThread.main(ActivityThread.java:3948) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at dalvik.system.NativeStart.main(Native Method) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:172) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.database.CursorWrapper.getString(CursorWrapper.java:135) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at com.amannain.android.missedcalls.MissedCallsAdapter.<init>(MissedCallsAdapter.java:24) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at com.amannain.android.missedcalls.MissedCallsActivity.onCreate(MissedCallsActivity.java:27) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231) 
02-09 06:05:28.281: ERROR/AndroidRuntime(12885):  ... 11 more 

よろしく、 アマンで

+1

"クラッシュ"を定義してください。 LogCatで例外が発生した場合は、質問に追加してください。 –

+1

コンソール/ logcat /デバッガで何のエラーが発生しますか? – tipycalFlow

+0

エラーログを取得します。 – Harry

答えて

0

MissedCallsAdapterアダプターが本当にあなたのアダプタのコードの

Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6 
at android.database.CursorWrapper.getString(CursorWrapper.java:135) 
at com.amannain.android.missedcalls.MissedCallsAdapter.<init>(MissedCallsAdapter.java:24) 
at com.amannain.android.missedcalls.MissedCallsActivity.onCreate(MissedCallsActivity.java:27) 

チェックライン24を初期化されるずっと前に、コンストラクタにカーソルを呼んでいるようです。コンストラクタに対するこの呼び出しがonCreateで起きる27行目です。

+0

エラーログを編集して問題を指摘してくれてありがとう。私は、カーソル・アダプタの構築メソッドで変数を初期化するのは間違っていました。今働いている。 :) – Harry

関連する問題