2016-02-24 539 views
0

我正在使用API​​ 14設備。我一直在嘗試開發類似於Gmail通知的多行通知。我已經經歷了幾個堆棧溢出的問題,但沒有找到任何解決方案,這將給我多線通知API < 16. 請注意,大視圖通知僅適用於OS 4.1+,我希望這用於API 14.Android狀態欄multiline通知API 14

NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
    NotificationCompat.InboxStyle inboxStyle; 
    inboxStyle = new NotificationCompat.InboxStyle(); 

    inboxStyle.addLine("Hello 1") 
    .addLine("Hello 2") 
    .addLine("Hello 3") 
    .addLine("Hello 4"); 

    builder.setStyle(inboxStyle); 
    builder.setTicker("HELLO WORLD MSG"); 
    builder.setSmallIcon(android.R.drawable.sym_def_app_icon); 
    builder.setContentTitle("HELLO WORLD"); 
    builder.setPriority(NotificationCompat.PRIORITY_HIGH); 
    notificationManager.notify(1000, builder.build()); 

This is the result I obtained. Here strings "hello 1", "hello2", "hell3" etc are not visible

我沒有得到字符串 「你好1」, 「你好2」,......在不同的線路。請幫助我...

編輯:由於許多錯誤的解決方案已發佈,我想指出,多行通知在其他現代手機(nexus)工作正常。我發佈的代碼沒有錯誤/錯誤。但它並不適用於API工作14

回答

0

嘗試下面的代碼

String[] names=new String[5]; 
     names[0]="Hello 1"; 
     names[1]="Hello 2"; 
     names[2]="Hello 3"; 
     names[3]="Hello 4"; 
     names[4]="Hello 5"; 
     inboxStyle.setBigContentTitle("Hello"); 
     for (String name:names) 
     { 
      inboxStyle.addLine(name); 
     } 

     builder.setStyle(inboxStyle); 

或者,您也可以參考this

+0

老兄仔細看看代碼請!!!我已經添加了inboxStyle.addLine(「Hello 1」) .addLine(「Hello 2」) .addLine(「Hello 3」) .addLine(「Hello 4」);這或多或少是你想要做的。 – oathkeeper

0

首先,我不會建議API14(因爲它已經過時了),但如果你仍然希望擁有多個行通知,您可以通過使用Notification.InboxStyle

Notification.InboxStyle inboxStyle = new Notification.InboxStyle();  
String[] events = new String[]{"h1","h2","h3","h4"};    //your lines 
inboxStyle.setBigContentTitle("Event tracker details:"); 
for(int i=0; i < events.length; i++) { 
    inboxStyle.addLine(events[i]); 
} 
Notification notification = new Notification.Builder(this) 
     .setSmallIcon(R.drawable.ic_launcher) 
     .setContentIntent(pintent) 
     .setStyle(inboxStyle)   
     .build(); 

Reference

+0

Dude你只是試圖在循環中添加字符串,而我使用生成器模式逐個添加它們。 inboxStyle.addLine(「Hello 1」).addLine(「Hello 2」).addLine(「Hello 3」).addLine(「Hello 4」);請再看一遍。這不是一個合適的解決方案。 – oathkeeper