在android通知中动态更改图标

时间:2015-05-11 06:15:16

标签: android android-notifications

我的图标名称为icon_1icon_2icon_3等等。我想根据输入动态更改通知中的图标。输入的数字范围为1到100。 如果输入为1,则应显示icon_1,如果输入为2则显示icon_2,依此类推。是否可以将图标设置为一行,或者我们被迫使用switch case语句?我在这里粘贴的代码示例以便更好地理解。切换case语句肯定会有所帮助,但只想知道是否可以在一行中写入以保存100行代码。

以下代码行可能无效。但只是为了理解这些事情,我已经习惯了。 输入是变量名称num中的数字。

Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
Notification n  = new Notification.Builder(this)
    .setContentText("Subject")
    .setSmallIcon(R.drawable.icon_+"num")  //Here is the doubt..How can we modify this line to work
    .setContentIntent(pIntent)
    .setAutoCancel(true)
     .build();
NotificationManager notificationManager=NotificationManager)mContext.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, n); 

1 个答案:

答案 0 :(得分:3)

看看这个

//create a array of your notification icons
int[] not_icon={R.drawable.icon_1,R.drawable.icon_2,R.drawable.icon_3.......so on};

//pass the array accordingly to your input or payload
.setSmallIcon(not_icon[3]);  //3 is the number you received in your payload.