我想根据订单状态的变化显示通知的状态。到现在为止,我已经可以展示它了。现在,下一个任务是,当用户单击通知时,我更喜欢将其带到track order片段,用户可以在其中详细查看其订单状态。
这是我的密码:
public static void createNotification(FragmentActivity activity, boolean isLoggedIn, String selectedOrderId, String order_status, String status_desc)
{
NotificationCompat.Builder builder =
new NotificationCompat.Builder(activity)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Lugmah Order Status")
.setContentText("The Order Status of Order Id: "+selectedOrderId+ "is: "+status_desc)
.setDefaults(NotificationCompat.DEFAULT_SOUND)
.setAutoCancel(true);
int NOTIFICATION_ID = 12345;
Intent targetIntent = new Intent(activity, TrackOrderFragment.class);
targetIntent.putExtra("isTrackOrder", false);
Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
TaskStackBuilder stackBuilder = TaskStackBuilder.create(activity);
if(isLoggedIn)
{
if(status_desc.equals("Rejected"))
{
targetIntent.putExtra("isLoggedIn", true);
targetIntent.putExtra("status_desc", status_desc);
fragment.setArguments(bundle);
bundle.putString("status_desc", status_desc);
bundle.putString("selectedOrderId", selectedOrderId);
targetIntent.putExtras(bundle);
stackBuilder.addParentStack(TrackOrderFragment.class);
stackBuilder.addNextIntent(targetIntent);
}
}
else
{
targetIntent.putExtra("isLoggedIn", false);
}
PendingIntent contentIntent = stackBuilder
.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT
| PendingIntent.FLAG_ONE_SHOT);
//PendingIntent contentIntent = PendingIntent.getActivity(activity, 0, targetIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
NotificationManager nManager = (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE);
nManager.notify(NOTIFICATION_ID, builder.build());
}
我想在两个片段之间传递status\u desc和selectedorderid数据。
为了接收数据,这里是我写的代码。
status_desc = getArguments().getString("status_desc");
rejectedOrderId = getArguments().getString("rejectedOrderId");
在这里,当管理员更改订单状态时,我会收到通知。但是,我无法在单击通知时导航到trackorderfragment.class。
我们将不胜感激。
3条答案
按热度按时间zzoitvuj1#
可能在做什么
Intent targetIntent = new Intent(activity, TrackOrderActivity.class);
而不是Intent targetIntent = new Intent(activity, TrackOrderFragment.class);
会帮你的。您可以将一个标志作为intent extra发送,以了解活动是否是根据通知创建的。把碎片和那个活动联系起来。k3fezbri2#
我主要是说这个代码块。
现在,在trackorderactivity oncreate方法中执行此操作。
现在在trackorderfragment上,如果调用getarguments(),我想您将获得包数据。
e0bqpujr3#
你可以点击按钮尝试下面的代码