2016-12-14 1 views
1

Je souhaite afficher le résultat de cette fonction dans la notification.convertir la valeur de chaîne en charsequence et l'afficher en notification dans android

public class TimerService extends Service { 
    public String timeString; 
... // service methodd 
public class CountingDownTimer extends CountDownTimer{ 
      public CountingDownTimer(long millisInFuture, long countDownInterval) { 
      super(millisInFuture, countDownInterval); 
     } 

     @Override 
     public void onTick(long leftTimeInMilliseconds) { 

      timeString = String.format("%02d", 5000/ 60) 
        + ":" + String.format("%02d", 5000% 60); 
       ... 
     } 
...// at the end of TimerService class 
        notification = new NotificationCompat.Builder(this) 
        .setContentText(timeString).build(); 

mais malheureusement rien (null) n'apparait dans la notification. Que puis-je faire? comment puis-je convertir la valeur de chaîne en séquence char?

+0

mise à jour ans ........ – siva35

Répondre

1

J'ai eu le même problème avant. vous devriez créer une nouvelle méthode et y mettre une notification.

private void setupNotification(String s) {} 

La chose la plus importante est que vous devez envoyer timestring de CountingDownTimer à setupNotification. alors faites comme ceci:

public class CountingDownTimer extends CountDownTimer{ 
    public String timeString=null; 

     public CountingDownTimer(long millisInFuture, long countDownInterval) { 
     super(millisInFuture, countDownInterval); 
    } 

    @Override 
    public void onTick(long leftTimeInMilliseconds) { 
     timeString = String.format("%02d", 5000/ 60) 
       + ":" + String.format("%02d", 5000% 60); 
     setupNotification(timeString); 

    } 

private void setupNotification(String s) { 
    notification = new NotificationCompat.Builder(this) 
       .setContentText(s) 
} 

J'espère que ça marche!

+0

Merci! Votre réponse fonctionne. – Migitanar

0
String s="STR"; 
CharSequence cs = s; // String is already a CharSequence 

de sorte que vous venez de passer timeString à setContentText

Edit:

il semble que vous appelez notification.setContentText() avant CountingDownTimerstarts.

appel notification intérieur OnFinish()

public CountingDownTimer(long millisInFuture, long countDownInterval) { 
     @Override 
     public void onTick(long l) { 
      timeString = String.format("%02d", l/60) 
        + ":" + String.format("%02d", l % 60); 

     // Add Here 
     notification = new NotificationCompat.Builder(this) 
          .setContentText(timeString).build(); 

     } 

     @Override 
     public void onFinish() { 

     } 
    }.start(); 

ici notification prévue après Compte à rebours terminé

+0

Je mets à jour ma question et publie quelques détails. Voulez-vous s'il vous plaît vérifier. – Migitanar

+0

oh non! Je veux montrer le compteur dans la notification pendant le comptage. – Migitanar