このコードはoverrides
onNewIntent()
アクティビティの方法です。この方法では、通知をクリックした結果、がListView
の項目を選択してに設定されました。問題はそれです; 2つの通知がある場合、最初の通知の必要な項目をクリックすると強調表示されますが、2番目の通知の前の項目をクリックすると再び強調表示されます。だから助けてください。必須ListViewの項目が選択されていません
コード:
@Override
protected void onNewIntent(Intent new_notification) {
caller = new_notification.getExtras().getString("CALLER");
if(caller.equals("GenNot")) {
int myScrollTo = new_notification.getExtras().getInt("ID");
Log.e("SEE NOW", "myScrollTo # "+myScrollTo, new Exception());
remindersList.requestFocusFromTouch();
remindersList.setSelection(myScrollTo);
}
}
Notiicationコード:
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;
public class GenerateNotification {
public static void reminderNotification(Context context, int notification_id, String document_id, String name, String date, Location location) {
Intent intent = new Intent(context, ViewReminders.class);
intent.putExtra("CALLER","GenNot");
intent.putExtra("ID", notification_id);
PendingIntent pIntent = PendingIntent.getActivity(context, notification_id, intent, 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setTicker("Smart Locator");
mBuilder.setSmallIcon(R.drawable.notification_icon);
mBuilder.setContentTitle(name);
DetailsContainer dc = new LocationDetails(context).getDetails(location);
mBuilder.setContentText(date + ", " + dc.area + " " + dc.locality);
mBuilder.setContentIntent(pIntent).getNotification();
mBuilder.setAutoCancel(true);
mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mBuilder.setSound(alarmSound);
NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(document_id, notification_id, mBuilder.build());
}
}