私はAndroid用のウィジェットに取り組んでいます。このために、未読メッセージの量と現在の時刻を表示しようとしています。現在の時刻は問題なく機能していましたが、メッセージ部分を追加したので、読み込もうとするとクラッシュします。これは私のコードです:
public class MyTime extends TimerTask {
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
Context context;
java.text.DateFormat format = SimpleDateFormat.getTimeInstance(
SimpleDateFormat.SHORT, Locale.getDefault());
public MyTime(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
thisWidget = new ComponentName(context, LeafClockWidget.class);
}
@Override
public void run() {
SimpleDateFormat sdf1 = new SimpleDateFormat("EEEE, MMMM dd");
Date d = new Date(System.currentTimeMillis());
String time1 = sdf1.format(d);
final Uri SMS_INBOX = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(SMS_INBOX, null, "read = 0", null, null);
int unreadMessagesCount = c.getCount();
c.deactivate();
remoteViews.setTextViewText(R.id.widget_textview3, "You have " + c + " unread SMS messages.");
remoteViews.setTextViewText(R.id.widget_textview1, time1);
remoteViews.setTextViewText(R.id.widget_textview2, "The time is "
+ format.format(new Date(System.currentTimeMillis())));
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
コードのどこにエラーがあるのか を見つけるのに苦労しているので、皆さんが私を助けてくれることを本当に願っています!