小编Ran*_*ku'的帖子

如何在Go中有效地连接字符串?

在Go中,a string是原始类型,这意味着它是只读的,并且对它的每次操作都将创建一个新字符串.

因此,如果我想在不知道结果字符串长度的情况下多次连接字符串,那么最好的方法是什么?

天真的方式是:

s := ""
for i := 0; i < 1000; i++ {
    s += getShortStringFromSomewhere()
}
return s
Run Code Online (Sandbox Code Playgroud)

但这似乎不是很有效.

string string-concatenation go

683
推荐指数
11
解决办法
43万
查看次数

如何实现Android Pull-to-Refresh

在Twitter(官方应用程序)等Android应用程序中,当您遇到ListView时,可以将其拉下(并在发布时它会反弹)以刷新内容.

我想知道在您看来,实施该方法的最佳方式是什么?

我能想到的一些可能性:

  1. ListView顶部的项目 - 但我不认为在ListView上使用动画滚动回项目位置1(从0开始)是一项简单的任务.
  2. ListView之外的另一个视图 - 但我需要注意在拉动时向下移动ListView位置,我不确定我们是否可以检测到ListView的拖动是否仍然真正滚动ListView上的项目.

有什么建议?

PS我想知道官方Twitter应用程序源代码何时发布.有人提到它会被释放,但已经过去了6个月,从那时起我们就没有听说过.

android listview android-listview pull-to-refresh

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

Android:焦点在EditText上时自动显示软键盘

我正在使用输入框AlertDialog.在EditText该对话框中本身自动对焦,当我打电话AlertDialog.show(),但软键盘未自动显示.

如何在显示对话框时自动显示软键盘?(并且没有物理/硬件键盘).与按下"搜索"按钮调用全局搜索的方式类似,将自动显示软键盘.

keyboard android soft-keyboard android-edittext

328
推荐指数
12
解决办法
29万
查看次数

如何在Android Studio中创建库项目以及使用库项目的应用程序项目

我是gradle构建系统和IntelliJ的新手.

那么如何创建一个Android库项目(例如com.myapp.lib1)和应用程序项目(例如com.myapp.app)并使构建系统在应用程序项目中包含com.myapp.lib1?

我进入了项目结构 - >模块 - >我的应用程序项目,并为lib项目添加了一个依赖项.IntelliJ现在可以在应用程序项目中使用时识别lib项目中的类,但是当我运行应用程序项目时,会出现以下错误:

Gradle: error: package com.myapp.lib1 does not exist
Run Code Online (Sandbox Code Playgroud)

android-studio

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

为什么我们使用"伴侣对象"作为Kotlin中Java静态字段的替代?

"伴侣对象"的意图是什么?到目前为止,我一直在使用它只是为了static在需要时替换Java .

我很困惑:

  • 为什么称它为"伴侣"?
  • 这是否意味着要创建多个静态属性,我必须在companion object块内组合它?
  • 为了立即创建一个作用于类的单例实例,我经常写

:

companion object {
    val singleton by lazy { ... }
}
Run Code Online (Sandbox Code Playgroud)

这似乎是一种单一的方式.有什么更好的方法?

kotlin kotlin-companion

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

如何使用支持FileProvider将内容分享给其他应用程序?

我正在寻找一种方法,使用Android支持库的FileProvider正确地与外部应用程序共享(而不是OPEN)内部文件.

按照文档上的示例,

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.example.android.supportv4.my_files"
    android:grantUriPermissions="true"
    android:exported="false">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/my_paths" />
</provider>
Run Code Online (Sandbox Code Playgroud)

并使用ShareCompat将文件共享给其他应用程序,如下所示:

ShareCompat.IntentBuilder.from(activity)
.setStream(uri) // uri from FileProvider
.setType("text/html")
.getIntent()
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
Run Code Online (Sandbox Code Playgroud)

不起作用,因为FLAG_GRANT_READ_URI_PERMISSION仅授予data对intent 指定的Uri的权限,而不授予EXTRA_STREAMextra 的值(由set设置setStream).

我试图通过设置成安全android:exportedtrue的供应商,但FileProvider在内部检查,如果本身是出口,所以时,它抛出一个异常.

android android-contentprovider android-support-library android-fileprovider

130
推荐指数
7
解决办法
11万
查看次数

"避免传递null作为视图根"警告在膨胀视图以供AlertDialog使用时

Avoid passing null as the view root当用nullas 膨胀视图时,我得到了lint警告parent,例如:

LayoutInflater.from(context).inflate(R.layout.dialog_edit, null);
Run Code Online (Sandbox Code Playgroud)

但是,视图是用作一个内容AlertDialog,使用setViewon AlertDialog.Builder,所以我不知道应该传递什么parent.

parent在这种情况下你认为应该是什么?

android layout-inflater android-alertdialog

111
推荐指数
6
解决办法
4万
查看次数

禁用NotificationChannel中的声音

今天我开始针对API 26,这迫使我使用通知频道.

我的问题是,现在每个新通知(包括对它的更新)都会播放恼人的声音.

如何禁用此声音?

我尝试用自定义的mp3声音替换这个声音,然后在其中传递一个静音的mp3,但这被忽略了.

我只是添加一个优先级非常低的通知,基本上让用户可以选择在与应用程序交互后执行某些操作.没有理由大声说话,用户会知道他可以参考通知,因为他已经对应用程序做了一些他知道会导致通知出现的事情.

用户真的会开始对这种声音感到恼火.

notifications android

71
推荐指数
6
解决办法
3万
查看次数

阻止在EditText上输入键,但仍将文本显示为多行

如何在Android上创建一个EditText,使得用户可能不会输入多行文本,但显示仍然是多行的(即有文字换行而不是文本转到右侧)?

它类似于内置的SMS应用程序,我们无法输入换行符,但文本以多行显示.

android multiline android-edittext

65
推荐指数
8
解决办法
6万
查看次数

在Android Logcat中GC_FOR_MALLOC,GC_EXPLICIT和其他GC_*的含义是什么?

如果您看到Android日志,您可能会看到很多这样的事情.

他们的意思是什么,知道这些可能有助于我们做更好的内存分配.

例:

 28470               dalvikvm  D  GC_FOR_MALLOC freed 665 objects / 239992 bytes in 71ms
 28470               dalvikvm  D  GC_FOR_MALLOC freed 673 objects / 240288 bytes in 87ms
 21940               dalvikvm  D  GC_EXPLICIT freed 4802 objects / 185320 bytes in 78ms
 28470               dalvikvm  D  GC_FOR_MALLOC freed 666 objects / 240536 bytes in 63ms
Run Code Online (Sandbox Code Playgroud)

android garbage-collection logcat

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