R.string 字符与CharSequence (工作记录)
Notification getProgressNotification(@StringRes int msgId) {
mProgressTracker.update(mProgressBuilder, (remainingTime) -> service.getString(msgId, FormatUtils.formatDuration(remainingTime)));
if(mProgressTracker.mRemainingTime>=1000000){
mProgressBuilder.setContentText();
}
return mProgressBuilder.build();
}
mProgressBuilder.setContentText();需要用到R.string中的字符用于各国语言适配
/**
* Set the second line of text in the platform notification template.
*/
@NonNull
public Builder setContentText(CharSequence text) {
mN.extras.putCharSequence(EXTRA_TEXT, safeCharSequence(text));
return this;
}v
其中
CharSequence本身是一个接口,在该接口中有如下方法:
获取指定索引的字符:public char charAt(int index);
获取字符串长度:public int length();
截取部分字符串:public CharSequence subSequence(int start, int end);
我想将R.string中的字符应用到
setContentText()中
方法:
String str;
CharSequence cs;
str=String.valueOf((R.string.Copy_time_dean));
cs=str;
if(mProgressTracker.mRemainingTime>=1000000){
mProgressBuilder.setContentText();
}
return mProgressBuilder.build(cs);
结果:显示了地址的数字此方法不生效.
使用service获取
Notification getProgressNotification(@StringRes int msgId) {
String str;
CharSequence cs;
str=service.getString(R.string.Copy_time_dean);
cs=str;
Log.w(TAG,"CS under =: "+cs);
mProgressTracker.update(mProgressBuilder, (remainingTime) -> service.getString(msgId, FormatUtils.formatDuration(remainingTime)));
if(mProgressTracker.mRemainingTime>=1000000){
mProgressBuilder.setContentText(cs);
Log.w(TAG,"CS in struct : "+cs);
}
return mProgressBuilder.build();
}
解决!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!