2016-12-14 6 views
1

Я хочу показать результат этой функции в уведомлении.преобразовать значение строки в charsequence и показать его в уведомлении в 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(); 

, но, к сожалению, ничего (null) показать в уведомлении. что я могу сделать? как я могу преобразовать значение String в последовательность символов?

+0

обновленный ans ........ – siva35

ответ

1

У меня была аналогичная проблема раньше. вы должны создать новый метод и разместить в нем уведомление.

private void setupNotification(String s) {} 

Самое главное, что вы должны послать timestring от CountingDownTimer к setupNotification. так вот так:

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) 
} 

Надеюсь, это сработает!

+0

Спасибо! ваш ответ работает. – Migitanar

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

так что вы просто передать timeString в setContentText

Edit:

, кажется, вы называете notification.setContentText() перед CountingDownTimerstarts.

вызов notification внутри 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(); 

здесь уведомление установлен после того, как таймер обратного отсчета закончил

+0

Я обновляю свой вопрос и публикую некоторые подробности. не могли бы вы проверить его. – Migitanar

+0

о нет! Я хочу показать счетчик в уведомлении при подсчете. – Migitanar

 Смежные вопросы

  • Нет связанных вопросов^_^