2016-02-24 4 views
0

Я использую устройство API 14. Я пытаюсь разработать многострочное уведомление, подобное уведомлениям Gmail. Я рассмотрел несколько вопросов переполнения стека, но не нашел решения, которое дало бы мне многострочное уведомление для API < 16. Обратите внимание, что уведомление Big View работает только для OS 4.1+, и я хочу это для API 14.Android Status bar multiline Notification 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

Я не получаю Strings "привет 1", "привет 2", ... в отдельных строках. Пожалуйста, помогите мне ...

EDIT: Поскольку было опубликовано много неправильных решений, я хотел бы указать, что многострочные уведомления отлично работают на других современных мобильных телефонах (nexus). Код, который я опубликовал, не является неисправным/неисправным. Но это не работает на API 14.

ответ

0

Try После кода

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

Чувак, вы просто пытаетесь добавить строки в цикле, в то время как я добавляю их один за другим, используя шаблон построителя. inboxStyle.addLine («Hello 1») .addLine («Hello 2») .addLine («Hello 3») .addLine («Hello 4»); Пожалуйста, посмотрите еще раз. Это не подходящее решение. – oathkeeper