我有一个日期字段(lastUpdated).我想将这个日期翻译成人类可读的格式,例如'今天','1天前','2天前',......
我正在使用Android库中包含的android.text.format.DateUtils API.
这是我的尝试:
DateUtils.getRelativeDateTimeString(context,
lastUpdated.getTime(),
DateUtils.DAY_IN_MILLIS,
DateUtils.WEEK_IN_MILLIS,
DateUtils.FORMAT_SHOW_YEAR);
Run Code Online (Sandbox Code Playgroud)
这是输出:
0 day ago, 12:00am
yesterday, 9:30am
2 days ago, 1:30pm
Sep 4, 12:30pm
Run Code Online (Sandbox Code Playgroud)
我预期的结果:(没有时间信息)
0 day ago --------- This should be 'today'
yesterday
2 days ago
Sep 4
Run Code Online (Sandbox Code Playgroud)
请注意,如果我从lastUpdated清除时间.它将显示'12:00am'的时间信息.
有人有什么想法吗?有没有办法从输出中删除时间?
谢谢!
我需要使用UTF-8编码将String编码为字节数组.我正在使用Google guava,它有Charsets类已经为UTF-8编码定义了Charset实例.我有两种方法可以做:
String.getBytes(charsetName)
try {
byte[] bytes = my_input.getBytes ( "UTF-8" );
} catch ( UnsupportedEncodingException ex) {
}
Run Code Online (Sandbox Code Playgroud)String.getBytes(Charset对象)
// Charsets.UTF_8 is an instance of Charset
byte[] bytes = my_input.getBytes ( Charsets.UTF_8 );
Run Code Online (Sandbox Code Playgroud)我的问题是我应该使用哪一个?他们返回相同的结果.对于方式2 - 我不必把try/catch!我看一下Java源代码,我看到方式1和方式2的实现方式不同.
有人有什么想法吗?
我想知道为什么Character.toUpperCase/toLowerCase没有像Locale这样的参数String.toUpperCase/toLowerCase.
我必须首先使用任何语言的大写文本.我有2个解决方案:
使用 Character.toUpperCase
String text = "stack overflow";
StringBuilder sb = new StringBuilder(text);
sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); // No Locale parameter here.
String out = sb.toString(); //Out: Stack overflow
Run Code Online (Sandbox Code Playgroud)使用 String.toUpperCase
Locale myLocale = new Locale(locateId);
String text = "stack overflow";
String text1 = text.substring(0,1).toUpperCase(myLocale );
String text2 = text.substring(1);
String out = text1 + text2; // Out: Stack overflow
Run Code Online (Sandbox Code Playgroud)对于我的Locale.两种方式都有相同的结果.
我的问题是:
由于文本可以使用任何语言.我应该使用哪种方式?
为什么Character.toUpperCase/toLowerCase没有Locale参数,因为它之间没有太大区别Character.toUpperCase/toLowerCase,String.toUpperCase/toLowerCase因为String是Characters数组.
我正在编写一个函数,使用Java 8 Stream将数组转换为Map.
这就是我想要的
public static <K, V> Map<K, V> toMap(Object... entries) {
// Requirements:
// entries must be K1, V1, K2, V2, .... ( even length )
if (entries.length % 2 == 1) {
throw new IllegalArgumentException("Invalid entries");
}
// TODO
Arrays.stream(entries).????
}
Run Code Online (Sandbox Code Playgroud)
有效的用法
Map<String, Integer> map1 = toMap("k1", 1, "k2", 2);
Map<String, String> map2 = toMap("k1", "v1", "k2", "v2", "k3", "v3");
Run Code Online (Sandbox Code Playgroud)
无效的用法
Map<String, Integer> map1 = toMap("k1", 1, "k2", 2, "k3");
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
谢谢!
Android N会支持Java 8 Date/Time API吗?
正如这个Android博客所说:http://android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html
改进的Java 8语言支持 - 我们很高兴将Java 8语言功能引入Android.使用Android的Jack编译器,您现在可以在Android版本上使用许多流行的Java 8语言功能,包括lambdas等,早在Gingerbread中.新功能有助于减少样板代码.例如,lambda可以在提供事件侦听器时替换匿名内部类.一些Java 8语言特性 - 如默认和静态方法,流和功能接口 - 现在也可在N及以上版本中使用.有了Jack,我们期待在保持向后兼容性的同时更紧密地跟踪Java语言.
它说:
使用Android的Jack编译器,您现在可以使用许多流行的Java 8语言功能,包括lambdas等
是的,支持lambda表达式.Java 8 New Date/Time API怎么样?
有任何想法吗?
谢谢!
这是我的请求网址:
http://server.com/app/user/getuser/?userId=9999
注意,这userId是查询参数。未嵌入的路径参数。
我了解如果请求URL为:http : //server.com/app/user/getuser/9999并且ID 9999在数据库中不存在,则应使用404。
但是userId查询参数应使用哪种HTTP状态?现在我返回的是400,而不是404。
query-parameters http-status http-status-code-404 http-status-code-400
一个android.widget.EditText可以通过2个原因获得焦点,因为我知道:
案例1.最终用户按目的触摸编辑文本.
案例2.系统自动提供编辑文本.
我的问题是: 如何才能检测到案例2?(事件监听器?)
我想要检测案例2的原因是:我想设置当前位置是编辑文本通过案例2获得焦点的最后位置.
EditText.setOnFocusChangeListener适用于case1,case2所以看来我不能使用它.
谢谢!
我有一个textView,可以显示任何语言的文本(最终用户输入文本).
我想知道我应该使用什么字体?
在本文中:http://www.google.com/design/spec/style/typography.html#typography-roboto-noto
谷歌说:
为了支持全球所有语言,Google建议将Roboto用于使用拉丁语,希腊语和西里尔语脚本的语言,将Noto用于所有其他语言.
如果我理解正确的话.没有单一的字体文件(Roboto | Noto)可以支持所有语言.
有谁知道我可以用什么字体?应该默认字体(Android决定)吗?
谢谢!
我的Android应用程序有一些admob广告.我正在Google Play商店Alpha&Beta频道测试我的admob.
我的问题是:
将应用程序部署到Google Play商店Alpha&Beta渠道时,我可以使用REAL admob广告单元ID吗?它违反了谷歌播放政策吗?
我在谷歌浏览器中看到了这个:
我需要使用测试广告吗?是.在开发过程中使用实时广告违反AdMob政策,这样做可能会导致您的AdMob帐户被暂停.
但对我来说似乎不太清楚.
谢谢!
android ×5
java ×3
java-8 ×2
admob ×1
ads ×1
api ×1
arrays ×1
autofocus ×1
cookies ×1
date-format ×1
datetime ×1
focus ×1
fonts ×1
google-play ×1
hashmap ×1
http-status ×1
java-stream ×1
locale ×1
lowercase ×1
multilingual ×1
onfocus ×1
string ×1
textview ×1
uppercase ×1