小编Reg*_*kie的帖子

剪贴板内容更改的监听器?

有没有办法注册一个方法,以便在用户结束"文本选择模式"时自动调用它(从而将选择复制到剪贴板)?

clipboard android clipboard-interaction

11
推荐指数
1
解决办法
9395
查看次数

替换字符串中出现的所有子字符串 - 这在Java中更有效吗?

我知道有两种方法可以替换字符串中所有出现的子字符串.

正则表达式方式(假设"要替换的子字符串"不包括正则表达式特殊字符):

String regex = "substring-to-be-replaced" + "+";
Pattern scriptPattern = Pattern.compile(regex);
Matcher matcher = scriptPattern.matcher(originalstring);
newstring = matcher.replaceAll("replacement-substring");
Run Code Online (Sandbox Code Playgroud)

String.replace()方式:

newstring = originalstring.replace("substring-to-be-replaced", "replacement-substring");
Run Code Online (Sandbox Code Playgroud)

哪两个更有效(以及为什么)?

有没有比上述两种更有效的方法?

java regex string

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

Proguard返回错误代码1.从ADT 16更新到18

我曾经使Proguard 4.6完美地在Eclipse 3.6.2上导出已签名的应用程序.

但是一旦我将ADT + SDK更新16.0.0.v201112150204-23853418.0.0.v201203301601-306762我就无法再导出已签名的应用程序(调试版本工作正常).相反,我在控制台中收到以下错误日志:

Proguard returned with error code 1. See console
java.io.IOException: Can't read [\\bta\wspc\LibProj1\bin\libproj1.jar] (Can't process class [com/bta/blib/proj1/BtClsProj1.class] (Unexpected end of ZLIB input stream))
    at proguard.InputReader.readInput(InputReader.java:230)
    at proguard.InputReader.readInput(InputReader.java:200)
    at proguard.InputReader.readInput(InputReader.java:178)
    at proguard.InputReader.execute(InputReader.java:78)
    at proguard.ProGuard.readInput(ProGuard.java:196)
    at proguard.ProGuard.execute(ProGuard.java:78)
    at proguard.ProGuard.main(ProGuard.java:492)
Caused by: java.io.IOException: Can't process class [com/bta/blib/proj1/BtClsProj1.class] (Unexpected end of ZLIB input stream)
    at proguard.io.ClassReader.read(ClassReader.java:112)
    at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
    at proguard.io.JarReader.read(JarReader.java:65)
    at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
    at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
    at proguard.InputReader.readInput(InputReader.java:226)
    ... 6 more
Caused by: java.lang.RuntimeException: Unexpected end …
Run Code Online (Sandbox Code Playgroud)

android proguard adt

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

是否有将HTML转换为纯文本的函数?

是否有适用于Android的"hocus-pocus"功能,可将HTML转换为纯文本?

我指的是像Internet Explorer,Firefox等浏览器中的剪贴板转换操作这样的函数:如果在浏览器中选择所有呈现的HTML并将其复制/粘贴到文本编辑器,您将收到(大部分)文本,没有任何HTML标签或标头.

在一个类似的线程中,我看到了对html2text的引用,但它是在Python中.我正在寻找Android/Java功能.

有没有这样的东西,或者我必须自己这样做,使用Jsoup还是Jtidy?

html java android

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

"使用"和"依赖"之间有什么区别?

在这个依赖注入的初学者指南中,我注意到UML图区分了"使用"和"依赖".

由于两者都需要在"使用"或"依赖"的类中使用某种形式的引用,我想知道:两者之间的区别是什么?

oop uml terminology

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

为什么在以前不需要的时候开始排除我自己的应用程序的资源?

我最近遇到了一个令人费解的问题,没有解释我以某种方式设法解决.

该解决方案本身提出了一个问题,我是因为我不明白:它迫使我直接Proguard的忽略关于我自己的应用程序在其包中的所有的警告全部.

-dontwarn com.bta.**
Run Code Online (Sandbox Code Playgroud)

除了在我的开发中忽略关于最容易出错的代码的警告(最常见的代码更改)这一令人不安的问题,我对两个问题感到困惑:

  1. 为什么突然出现这种需求?(我以前从来不需要这样做.)
  2. 为什么我开发的其他项目/应用程序不需要这样做?

我相信我介绍的一些新代码或库导致了这个问题(AdMob?),但对此有何解释?为什么第三方库会强迫我关闭我自己的应用程序资源的警告?

完全关闭我自己的应用程序包的警告有什么副作用(就像我一样)?

android proguard adt admob

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

为什么URLConnection会在6分钟而不是5秒后超时?

我正在从我的应用程序中逐字复制这个方法,这个方法还没有完成,但如果事情不顺利,它会尝试为我提供超时堆栈跟踪:

protected boolean isHttpAlive()  {
  boolean isHttpOk = false;

  HttpURLConnection httpConnection = null;
  try {
    URL gurl = new URL("http://www.amazon.com/");
    URLConnection connection = gurl.openConnection();
    connection.setConnectTimeout(5 * 1000); // 5 seconds!
    httpConnection = (HttpURLConnection) connection;
    int responseCode = httpConnection.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_OK)
      isHttpOk = true;
  } 
  catch (Exception e) {                    
    e.printStackTrace();
  }
  finally {
    if (httpConnection != null)
      httpConnection.disconnect();
  }

  return isHttpOk;
}
Run Code Online (Sandbox Code Playgroud)

现在在我的一个测试设备(Droid)上,当出现问题时,我确实得到了异常,但仅在6分36秒之后,而不是我在上面的代码中设置的5秒.

为此抛出超时异常getResponseCode().

为什么?

我错过了什么?

android urlconnection httpurlconnection android-networking

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

为什么MotionEvent模拟不起作用?

在练习应用程序的其中一个视图中,我尝试以编程方式执行文本选择.

我能够(以编程方式)输入"文本选择模式",它由视图左上角的CursorControllers(AKA句柄)可视地指示.

如果我手动拖动右边的CursorController,然后再次单击它(在模拟器中),它按预期工作(完美),显示一条简短的消息:"文本复制到剪贴板".

但是当我尝试以编程方式拖动正确的CursorController时,没有任何反应.

我尝试这样做的方法是模拟MotionEvent.在视图中,我打电话给:

  event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0);
  MainActivity.onTouch(this, event);
Run Code Online (Sandbox Code Playgroud)

在MainActivity中我当然实现了OnTouchListener:

@Override
public boolean onTouch(View v, MotionEvent event) { // called BEFORE button's onTouchEvent()
    Log.v("MainActivity::onTouch()", describeEvent(v, event));
    switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
        case MotionEvent.ACTION_UP: 
            if (!v.hasFocus()) { 
                v.requestFocus(); 
             } 
             break; 
    } 
    return false; 
}
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,仅仅从onTouch返回'false',Android就会继续寻找另一个UI对象来使用MotionEvent对象,最终到达我的视野.

为什么不这样呢?

我必须遗漏一些非常基本的东西......

events android touch textselection

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

句法`new Class [] {}`如何工作?

在这个初学者指南依赖注入的第一个代码示例中,我遇到了一些新构造,我不确定我是否完全理解:

 // Instantiate CabAgency, and satisfy its dependency on an airlineagency.

 Constructor constructor = cabAgencyClass.getConstructor
  (new Class[]{AirlineAgency.class});
 cabAgency = (CabAgency) constructor.newInstance
  (new Object[]{airlineAgency});
Run Code Online (Sandbox Code Playgroud)

什么是new Class[]{AirlineAgency.class}真正的意思是做?

我知道它的目标是创建一个Constructor实例,AirlineAgency.class但语法是如何new Class[]{}实现的呢?

[]当只涉及一个对象时,为什么数组概念?

{}这里的语法是什么?为什么不()呢?

java reflection

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

如何自动生成proguard-android.txt?

阅读Android的新ProGuard改进所做的所有精彩事情,我通过在新创建的项目中取消注释以下行来切换到新方案:

proguard.config=${sdk.dir}\tools\proguard\proguard-android.txt;proguard-project.txt
Run Code Online (Sandbox Code Playgroud)

但是当我尝试导出这个项目的APK时,我会收到以下消息:

无效的proguard配置文件路径C:\ android-sdk-windows\tools\proguard\proguard-android.txt不存在或不是常规文件

好吧,我检查了目录C:\android-sdk-windows\tools\proguard,当然,虽然这个目录存在并且有子目录甚至是README文件,但是proguard-android.txt无处可寻.

顺便说一句,我尝试了它:而不是;但似乎没有改变任何东西.

是不是Eclipse + ADT + Proguard应该为我自动生成这个文件?我错过了什么?

另外,我在哪里可以找到Android proguard-android.txt 的"标准" 默认规则集,以便我可以将其复制到其缺失的插槽中?

android proguard adt

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