从Android中的单击通知中获取数据

阿尔文·瓦尔德斯(Alvin Valdez)

大家好,我需要有关如何从使用广播接收器设置的未决意图中获取数据的帮助。我想发生的是单击通知时获取ID的数据,这对于我的活动是必需的。

这就是我做演员的方式

public class AlertReceiver extends BroadcastReceiver {

    private int id;
    // Called when a broadcast is made targeting this class
    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle bundle = intent.getExtras();
        String title = bundle.getString("title");
        String time = bundle.getString("time");
        id = bundle.getInt("id");

        createNotification(context, title, time, "Pharoah Reminder");
    }

    public void createNotification(Context context, String msg, String msgText,  String msgAlert){
        Intent reminderActivity =  new Intent(context, ReminderPreviewActivity.class);
        reminderActivity.putExtra("id", id);

        PendingIntent notificationIntent = PendingIntent.getActivity(context, id,
                reminderActivity, PendingIntent.FLAG_UPDATE_CURRENT );

        NotificationCompat.Builder mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(context)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(msg)
                .setTicker(msgAlert)
                .setContentText(msgText)
                .setContentIntent(notificationIntent);

        mBuilder.setContentIntent(notificationIntent);
        mBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND);
        mBuilder.setAutoCancel(true);

        NotificationManager mNotificationManager =
                (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        mNotificationManager.notify(id, mBuilder.build());
    }
}

但是当我尝试从通知中打开活动时,它始终为null。

这是我怎么得到的。

public class ReminderPreviewActivity extends AppCompatActivity {

    private Toolbar mToolBar;

    private TextView titleTextView;
    private TextView descTextView;
    private TextView timeTextView;
    private TextView dateTextView;

    private String title;
    private String desc;
    private String date;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_reminder_preview);

        mToolBar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(mToolBar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);



        titleTextView   = (TextView) findViewById(R.id.titleTextView);
        descTextView    = (TextView) findViewById(R.id.descTextView);
        timeTextView    = (TextView) findViewById(R.id.timeTextView);
        dateTextView    = (TextView) findViewById(R.id.dateTextView);

        Intent extras = getIntent();

        if(extras.getStringExtra("title") != null){
            setContentFromExtras(extras);
        }else{
            setContentFromDB(extras);
        }
    }

    private void setContentFromExtras(Intent extras){
        title   = extras.getStringExtra("title");
        desc    = extras.getStringExtra("desc");
        date    = extras.getStringExtra("date");

        String[] dateDB = date.split(" ");

        titleTextView.setText(title);
        descTextView.setText(desc);
        timeTextView.setText(formatTime(dateDB[1])+" "+dateDB[2]);
        dateTextView.setText(formatDate(dateDB[0]));
    }

    public void setContentFromDB(Intent extras){
        String id = extras.getStringExtra("id");

        int reminderID = Integer.parseInt(id);

        titleTextView.setText(reminderID);
    }

我需要ID才能从数据库中检索数据。当我关闭应用程序时,也会发生同样的事情。

阵风使蓝色

在中AlertReceiver,您已经声明

private int id;

然后你用这个int

reminderActivity.putExtra("id", id);

因此,您还必须intsetContentFromDB()方法中将其作为

int reminderID = extras.getIntExtra("id", someInt);
titleTextView.setText("" + reminderID);

其中“ someInt”应该int是通常不使用值,或者在您的情况下有意义的默认值。

您从中得到了null,getStringExtra("id")因为如果没有找到String带有键“ id”的返回值,则为null

并且,如果您使用带有的intTextView.setText(),则它将被解释为字符串资源。我认为在您的情况下(“ id”表示数据库)是不好的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Android中的单击通知中获取数据

来自分类Dev

接收推送Android(firebase)时如何从通知中获取数据?

来自分类Dev

Android推送通知-单击单个推送通知的操作按钮时如何获取通知数据

来自分类Dev

无法从推送通知中获取数据

来自分类Dev

在recyclerview中单击项目时获取数据

来自分类Dev

在recyclerview中单击项目时获取数据

来自分类Dev

Android推送通知:单击通知即可获取数据,存储并显示新活动

来自分类Dev

Android推送通知:单击通知即可获取数据,存储并显示新活动

来自分类Dev

在推送通知中获取数据库通知 ID

来自分类Dev

从url获取数据并在android中单击按钮时将其显示在现有列表中

来自分类Dev

在Android 4.1及更高版本中获取通知

来自分类Dev

如何在Android中获取多个通知

来自分类Dev

单击按钮从Android中的EditText获取文本

来自分类Dev

Android:在通知中显示数据列表

来自分类Dev

Android如何从onListItemClick中获取ListView ID并使用它?ListView,通知,SQLite数据库

来自分类Dev

单击GCM通知未在Android Kitkat中打开所需的活动

来自分类Dev

在Android中单击通知时如何打开应用程序?

来自分类Dev

单击通知活动中的后退按钮后,Android 打开 MainActivity

来自分类Dev

从列表框中的单击项中获取数据

来自分类Dev

Android:在ListView中获取数据

来自分类Dev

如何在后台和数据同步中获取通知

来自分类Dev

如何清除所有通知而无需在Android中单击通知

来自分类Dev

单击按钮从数据库中获取行的ID

来自分类Dev

如何通过单击从<li>元素中获取数据

来自分类Dev

当单击以在div中显示数据时,是否试图获取链接?

来自分类Dev

在.NET Core中在Ajax按钮上获取JSON数据单击

来自分类Dev

单击链接时从数据库中获取结果

来自分类Dev

从ListViewItem单击处理程序中的事件args获取数据

来自分类Dev

当单击以在div中显示数据时,是否试图获取链接?

Related 相关文章

  1. 1

    从Android中的单击通知中获取数据

  2. 2

    接收推送Android(firebase)时如何从通知中获取数据?

  3. 3

    Android推送通知-单击单个推送通知的操作按钮时如何获取通知数据

  4. 4

    无法从推送通知中获取数据

  5. 5

    在recyclerview中单击项目时获取数据

  6. 6

    在recyclerview中单击项目时获取数据

  7. 7

    Android推送通知:单击通知即可获取数据,存储并显示新活动

  8. 8

    Android推送通知:单击通知即可获取数据,存储并显示新活动

  9. 9

    在推送通知中获取数据库通知 ID

  10. 10

    从url获取数据并在android中单击按钮时将其显示在现有列表中

  11. 11

    在Android 4.1及更高版本中获取通知

  12. 12

    如何在Android中获取多个通知

  13. 13

    单击按钮从Android中的EditText获取文本

  14. 14

    Android:在通知中显示数据列表

  15. 15

    Android如何从onListItemClick中获取ListView ID并使用它?ListView,通知,SQLite数据库

  16. 16

    单击GCM通知未在Android Kitkat中打开所需的活动

  17. 17

    在Android中单击通知时如何打开应用程序?

  18. 18

    单击通知活动中的后退按钮后,Android 打开 MainActivity

  19. 19

    从列表框中的单击项中获取数据

  20. 20

    Android:在ListView中获取数据

  21. 21

    如何在后台和数据同步中获取通知

  22. 22

    如何清除所有通知而无需在Android中单击通知

  23. 23

    单击按钮从数据库中获取行的ID

  24. 24

    如何通过单击从<li>元素中获取数据

  25. 25

    当单击以在div中显示数据时,是否试图获取链接?

  26. 26

    在.NET Core中在Ajax按钮上获取JSON数据单击

  27. 27

    单击链接时从数据库中获取结果

  28. 28

    从ListViewItem单击处理程序中的事件args获取数据

  29. 29

    当单击以在div中显示数据时,是否试图获取链接?

热门标签

归档