我的图标名称为icon_1
,icon_2
,icon_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);
答案 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.