哪一个更好,为什么?
这个:
@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) 当我比较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) 我在Android中执行时使用sqlite3控制台调试我的应用程序.有没有办法用sql查询结果中的数据显示列名(不仅仅是数据)?
有没有办法在代码中为线程设置友好名称?
例如,我希望图像上名为Thread-11的线程被命名为"MyImportThread".
example-threads http://s12.postimage.org/3pq9frjct/threadname.png
我想在Android Studio中使用不同的lint.xml文件来发布和调试构建类型.那么,如何实现呢?
当我将lint.xml放在someModule/src/debug和someModule/src/release文件夹中时(也就是说,这些文件夹只包含那个lint.xml文件而已),gradle会做出反应,因为没有任何lint.xml文件,如果我放置核心模块文件夹下的单个lint.xml文件(someModule /) - gradle识别它,但在这种情况下我不能使用不同的设置,具体取决于构建类型...
每个帐户的帐户设置中都会显示一个图标.对于Google帐户,有一个图标,另一个用于Facebook.
有没有办法从应用程序中的代码中获取此图标?
我想在第一个应用启动时打开一些首选项(通过扩展DialogPreference来创建).此外,这些偏好用作通常的偏好.
有没有办法实现这个?
编辑:
我有我的自定义偏好,如下所示:
public class CitySelectPreference extends DialogPreference {
// Some code here
}
Run Code Online (Sandbox Code Playgroud)
并且作为解决方案,我希望它从代码中显示,而无需用户进入首选项屏幕.
假设我们有自定义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将用红色绘制(现在确切的颜色无关紧要,我稍后会将其更改为有意义的东西),同时,"美元"的底部部分"右侧列表视图中的"阿富汗阿富汗人"的顶部也将以相同的红色绘制.
此颜色更改应以动态方式完成 - 仅在滚动列表期间,应仅更改玻璃矩形下文本部分的颜色.
*好的,欧元和美元这里是使用非标准青色绘制的特殊货币.问题是至少有白色文字.但如果能够改变青色也会很棒.

我们有一些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中使用数字格式,而不是字符串.
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的动态会很快动态变化.