小编Loc*_*Loc的帖子

使用Android DateUtils API在Android中将相对日期格式设置为人类可读格式

我有一个日期字段(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'的时间信息.

有人有什么想法吗?有没有办法从输出中删除时间?

谢谢!

android date-format

28
推荐指数
1
解决办法
2万
查看次数

如何在Firefox DevTools中编辑或删除cookie?

在Firebug中,我可以使用Cookies面板删除和编辑任何cookie .

但在Firefox DevTools中,我找不到任何方法来删除或编辑cookie.

*Firefox DevTools中的Network*面板显示请求cookie

我在哪里可以做到的?

cookies firefox-addon firefox-developer-tools

26
推荐指数
2
解决办法
4万
查看次数

Java String.getBytes(charsetName)vs String.getBytes(Charset object)

我需要使用UTF-8编码将String编码为字节数组.我正在使用Google guava,它有Charsets类已经为UTF-8编码定义了Charset实例.我有两种方法可以做:

  1. String.getBytes(charsetName)

    try {        
        byte[] bytes = my_input.getBytes ( "UTF-8" );
    } catch ( UnsupportedEncodingException ex) {
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 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的实现方式不同.

有人有什么想法吗?

java string character-encoding

20
推荐指数
3
解决办法
4万
查看次数

为什么Java Character.toUpperCase/toLowerCase没有像String.toUpperCase/toLowerCase这样的Locale参数

我想知道为什么Character.toUpperCase/toLowerCase没有像Locale这样的参数String.toUpperCase/toLowerCase.

我必须首先使用任何语言的大写文本.我有2个解决方案:

  1. 使用 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)
  2. 使用 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 multilingual locale lowercase uppercase

10
推荐指数
2
解决办法
2139
查看次数

如何使用Java 8 Stream将Array转换为HashMap

我正在编写一个函数,使用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)

有帮助吗?

谢谢!

java arrays hashmap java-8 java-stream

9
推荐指数
1
解决办法
1万
查看次数

Android N中是否提供Java 8 New Date API?

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怎么样?

有任何想法吗?

谢谢!

api datetime android java-8 android-7.0-nougat

8
推荐指数
1
解决办法
1998
查看次数

HTTP 404与400的无效查询参数

这是我的请求网址:

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

7
推荐指数
1
解决办法
2731
查看次数

如何检测EditText由Android获得焦点.不是最终用户触摸编辑文本?

一个android.widget.EditText可以通过2个原因获得焦点,因为我知道:

案例1.最终用户按目的触摸编辑文本.

案例2.系统自动提供编辑文本.

  • 导航
  • 第一个默认焦点
  • ...

我的问题是: 如何才能检测到案例2?(事件监听器?)

我想要检测案例2的原因是:我想设置当前位置是编辑文本通过案例2获得焦点的最后位置.

EditText.setOnFocusChangeListener适用于case1,case2所以看来我不能使用它.

谢谢!

android focus onfocus autofocus android-edittext

6
推荐指数
1
解决办法
6244
查看次数

我应该使用什么样的字体来支持所有语言的TextView?

我有一个textView,可以显示任何语言的文本(最终用户输入文本).

我想知道我应该使用什么字体?

在本文中:http://www.google.com/design/spec/style/typography.html#typography-roboto-noto

谷歌说:

为了支持全球所有语言,Google建议将Roboto用于使用拉丁语,希腊语和西里尔语脚本的语言,将Noto用于所有其他语言.

如果我理解正确的话.没有单一的字体文件(Roboto | Noto)可以支持所有语言.

有谁知道我可以用什么字体?应该默认字体(Android决定)吗?

谢谢!

fonts android textview android-fonts

6
推荐指数
1
解决办法
816
查看次数

Beta和Alpha频道中的Android AdMob Real广告单元ID

我的Android应用程序有一些admob广告.我正在Google Play商店Alpha&Beta频道测试我的admob.

我的问题是:

将应用程序部署到Google Play商店Alpha&Beta渠道时,我可以使用REAL admob广告单元ID吗?它违反了谷歌播放政策吗?

我在谷歌浏览器中看到了这个:

我需要使用测试广告吗?是.在开发过程中使用实时广告违反AdMob政策,这样做可能会导致您的AdMob帐户被暂停.

但对我来说似乎不太清楚.

谢谢!

android ads admob google-play

6
推荐指数
1
解决办法
1197
查看次数