小编Pri*_*off的帖子

是否需要在onActivityResult()中使用super.onActivityResult()?

哪一个更好,为什么?

这个:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    ...
}
Run Code Online (Sandbox Code Playgroud)

或这个:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    // do not call super.onActivityResult()
    ...
}
Run Code Online (Sandbox Code Playgroud)

java android

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

Commons Lang StringUtils.replace性能vs.String.replace

当我比较Apache的性能StringUtils.replace()VS String.replace()我很惊讶地知道,前者是快约4倍.我使用Google的Caliper框架来衡量效果.这是我的考试

public class Performance extends SimpleBenchmark {
    String s = "111222111222";

    public int timeM1(int n) {
        int res = 0;
        for (int x = 0; x < n; x++) {
            res += s.replace("111", "333").length();
        }
        return res;
    }

    public int timeM2(int n) {
        int res = 0;
        for (int x = 0; x < n; x++) {
            res += StringUtils.replace(s, "111", "333", -1).length();
        }
        return res;
    }

    public static void main(String... args) {
        Runner.main(Performance.class, args);
    } …
Run Code Online (Sandbox Code Playgroud)

java

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

如何在sqlite3中获取包含查询数据的列名?

我在Android中执行时使用sqlite3控制台调试我的应用程序.有没有办法用sql查询结果中的数据显示列名(不仅仅是数据)?

sqlite android console-application

21
推荐指数
1
解决办法
6702
查看次数

如何设置线程的名称?

有没有办法在代码中为线程设置友好名称?

例如,我希望图像上名为Thread-11的线程被命名为"MyImportThread".

example-threads http://s12.postimage.org/3pq9frjct/threadname.png

java debugging multithreading android

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

Android Studio中不同构建类型的不同lint.xml?

我想在Android Studio中使用不同的lint.xml文件来发布调试构建类型.那么,如何实现呢?

当我将lint.xml放在someModule/src/debugsomeModule/src/release文件夹中时(也就是说,这些文件夹只包含那个lint.xml文件而已),gradle会做出反应,因为没有任何lint.xml文件,如果我放置核心模块文件夹下的单个lint.xml文件(someModule /) - gradle识别它,但在这种情况下我不能使用不同的设置,具体取决于构建类型...

lint android-studio android-gradle-plugin

13
推荐指数
2
解决办法
2433
查看次数

如何从AccountManager.getAccounts()获取与特定帐户关联的图标

每个帐户的帐户设置中都会显示一个图标.对于Google帐户,有一个图标,另一个用于Facebook.

有没有办法从应用程序中的代码中获取此图标?

java icons android user-accounts accountmanager

10
推荐指数
1
解决办法
1639
查看次数

Android:有没有办法从代码中显示DialogPreference?

我想在第一个应用启动时打开一些首选项(通过扩展DialogPreference来创建).此外,这些偏好用作通常的偏好.

有没有办法实现这个?

编辑:

我有我的自定义偏好,如下所示:

public class CitySelectPreference extends DialogPreference  {
// Some code here
}
Run Code Online (Sandbox Code Playgroud)

并且作为解决方案,我希望它从代码中显示,而无需用户进入首选项屏幕.

android android-preferences dialog-preference

10
推荐指数
1
解决办法
1628
查看次数

如何在特定区域中叠加列表项文本颜色?

假设我们有自定义ListView,onDraw()通过在其中绘制一些矩形来扩展方法.

class Listpicker extends ListView {
//..Some other methods here..//
    @Override
    protected void onDraw(android.graphics.Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawBitmap(glassPickerBitmap, null, glassRect, semiTransparrentPaint);
    }
}
Run Code Online (Sandbox Code Playgroud)

绘制的位图代表某种玻璃,它是矩形,宽度等于listview的宽度和一些高度.我想要的是当列表项滚动到此矩形时,用于绘制文本的颜色(不是所有带背景的项目等)将被更改为另一种颜色.因此,例如,当列表项适合使得只有文本的一半高度适合时glassPickerBitmap,列表项的外部部分应保持其序数颜色,而内部部分glassPickerBitmap应更改其文本颜色.列表项是没有任何背景的简单TextView.

怎么能实现这个目标?也许任何ColorFilter分配给Paint?但是哪里?滚动时甚至不调用onDraw()方法...可以在自定义视图中完成,例如,这将是项目?或者可能是某些Color/Shader /不知道这里可以使用哪些叠加,但在哪里ListviewListViewListView

编辑(添加图像示例):

这是来自现实应用程序的一些作物的示例.有两个ListViews:一个在左侧,另一个在右侧.玻璃是灰色矩形.现在,左侧列表中选择了"美元"货币.我正在ListView以这种方式向右滚动,选择介于美元阿富汗阿富汗之间.现在,我想要的是,左边的美元货币ListView将用红色绘制(现在确切的颜色无关紧要,我稍后会将其更改为有意义的东西),同时,"美元"的底部部分"右侧列表视图中的"阿富汗阿富汗人"的顶部也将以相同的红色绘制.

此颜色更改应以动态方式完成 - 仅在滚动列表期间,应仅更改玻璃矩形下文本部分的颜色.

*好的,欧元和美元这里是使用非标准青色绘制的特殊货币.问题是至少有白色文字.但如果能够改变青色也会很棒.

列举示例

java android listview overlay colors

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

如何在将其编码为JSON时将float截断为%.2f格式?

我们有一些float f = 52.92;.事实上,它将拥有类似的价值52.91999816894531.但是我希望使用json-string将它传输到我的web-app,截断那些非有效数字.我该怎么做?

因此,我需要获取此json字符串:

{"price": 52.92}
Run Code Online (Sandbox Code Playgroud)

我使用的代码:

float f = 52.92;
JSONObject js_price = new JSONObject();
js_price.put("price", f);
Log.d("json", js_price.toString());
Run Code Online (Sandbox Code Playgroud)

产生这个丑陋的json:

{"price": 52.91999816894531}
Run Code Online (Sandbox Code Playgroud)

另外,我需要"price"在json中使用数字格式,而不是字符串.

java android json

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

如何使用Paint.getTextBounds()快速获取TextView的宽度和高度?

Paint类中有一个方法:Paint.getTextBounds()返回Rect某些文本占用的内容.但根据这个答案,它会返回与TextView的宽度/高度不同的东西.

Q1:有没有办法Rect通过Paint.getTextBounds()返回TextView的宽度和高度?

注意,我确实需要精确地知道宽度/高度.我很高兴知道rect可能的错误大约2-3%的上限,但它必须不大(并且应该适用于任何不依赖于屏幕分辨率和像素密度的手机)然后TextView界限

Q2:有没有其他QUICK方法用指定的textSize确定某些文本的宽度和高度?

我知道,宽度可以由Paint.measureText()确定,但这不会返回高度.高度可以通过创建new StaticLayoutwith text然后调用StaticLayout.getHeight()来确定,但这太慢了.我需要更快的东西.


所有这一切的背景是AutoFitTextView通过向上或向下缩放文本大小自动将文本放入其边界内,并且它应该快速完成,因为很多这样AutoFitTextView的动态会很快动态变化.

java performance android textview text-size

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