小编Den*_*hev的帖子

从android上的操作栏中删除图标/徽标

我一直试图找到一些从操作栏中删除图标/徽标的方法,但我在搜索SO,Android的文档和Google之后发现的唯一一件事就是如何删除整个标题栏.那不是我想要的.只想从标题栏中删除图标/徽标.

谁知道怎么做到这一点?我想在XML中这样做.

xml android titlebar android-layout android-actionbar

145
推荐指数
10
解决办法
14万
查看次数

Java - 将String转换为有效的URI对象

我想从一个java.net.URI对象中获取一个对象String.该字符串有一些字符需要用它们的百分比转义序列替换.但是当我使用URLEncoder对UTF-8编码的字符串进行编码时,即使/被替换为它们的转义序列.

如何从String对象获取有效的编码URL?

http://www.google.com?q=a b给出 http%3A%2F%2www.google.com ...而我希望输出为 http://www.google.com?q=a% 20B

有人可以告诉我如何实现这一目标.

我试图在Android应用程序中执行此操作.所以我可以访问有限数量的库.

java encoding android utf-8

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

java泛型超级关键字

我经历了这些话题

但是,我似乎仍然丢失了super关键字:

  1. 当我们声明一个这样的集合时:

    List<? super Number> list = null;
    list.add(new Integer(0));//this compiles
    list.add(new Object());//this doesn't compile
    
    Run Code Online (Sandbox Code Playgroud)

    不应该是相反的 - 我们有一个列表,其中包含一些父母的对象(未知类型)Number.所以Object应该适合(因为它是父的Number),Integer不应该.出于某种原因,情况正好相反.

  2. 只要我们有以下代码

    static void test(List<? super Number> param) {
        param.add(new Integer(2));
    }
    public static void main(String[] args) {
        ArrayList<String> sList = new ArrayList<String>();
        test(sList);            //will never compile, however...
    }
    
    Run Code Online (Sandbox Code Playgroud)

    编译上面的代码是不可能的(我的理智表明这是正确的行为),但基本逻辑可能证明相反:

    String is Object, Object is superclass of Number. So String should work.

    我知道这很疯狂,但这不是他们不允许<S super T>构造的原因吗?如果是,那么为什么<? super T> …

java generics

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

Ant:将compilerarg传递给javac

我有编写的ant脚本:

            <javac srcdir="${test.src.dir}" destdir="${test.dist.dir}">
               ...  
               <compilerarg value="-Xlint:unchecked" />
            </javac>
Run Code Online (Sandbox Code Playgroud)

我需要增加编译器的堆内存,所以我将以下参数放入compileargs:

<compilerarg value="-Xlint:unchecked -Xms128m -Xmx512m" />
Run Code Online (Sandbox Code Playgroud)

但我在控制台中收到错误:

[javac] javac: invalid flag: -Xms128m
[javac] Usage: javac <options> <source files>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如何增加使用的内存javac

java memory ant heap javac

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

API 26+:WRITE_EXTERNAL_STORAGE权限始终被拒绝

我已将我的应用程序切换到目标API 27,现在它无法获得WRITE_EXTERNAL_STORAGE权限 - grantResult始终是-1.

我的应用程序需要此权限,因为它不使用应用程序私有外部存储空间(不需要 WRITE_EXTERNAL_STORAGE从API 19开始).

我知道在API 26中有权限的行为更改.然而,这并不能解释我的问题.

我以标准方式请求两者READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE权限:

ActivityCompat.requestPermissions(activity, new String[] {
        Manifest.permission.READ_EXTERNAL_STORAGE,
        Manifest.permission.WRITE_EXTERNAL_STORAGE
    }, requestCode);
Run Code Online (Sandbox Code Playgroud)

(两个权限都通过<uses-permission清单声明).

出现对话框,然后单击"允许":

在此输入图像描述

但是在onRequestPermissionsResult回调中我得到(并且被授予)-1(拒绝).WRITE_EXTERNAL_STORAGE0READ_EXTERNAL_STORAGE

0因为我已经要求并且可能两者都同意,结果不应该是两者兼而有之吗?

我试图WRITE_EXTERNAL_STORAGE单独请求,但在这种情况下,对话框根本不会出现.

还有一个细节:我刚检查了合并的清单build/intermediates/manifests/full/debug,发现WRITE_EXTERNAL_STORAGE权限有属性android:maxSdkVersion="18"(我的清单中没有这样的属性).这可能会发生,因为我的应用程序有minApiVersion=21,但我不确定.

android android-permissions android-8.0-oreo

20
推荐指数
1
解决办法
6219
查看次数

Android Junit测试失败,"只有创建视图层次结构的原始线程才能触及其视图".

我是Android的新手,我正在使用Robotium编写一些基本的Android测试,但这个例外失败了

"android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views."
Run Code Online (Sandbox Code Playgroud)

以下是基本的测试用例解释: -

测试用例:-

public void testSearch() {
                        Activity a = getActivity();
            SearchItemActivity search = new SearchItemActivity(solo);
            search.searchText("ipod", a);   

    }

 SearchItemActivity.searchText(String) is defined as

    public void searchText(final String search, Activity act) {
                Button v = (Button) act
                .findViewById(com.test.mobile.R.id.text_search_field);
                ((Button) v).setText("");
                ((Button) v).setText(search);
                solo.sendKey(Solo.ENTER);
                solo.waitForActivity("FoundItemdDetailActivity");
                solo.assertCurrentActivity("Expected FoundItemDetail activity","FoundItemdDetailActivity");
    }
Run Code Online (Sandbox Code Playgroud)

任何有关如何修改我的代码的建议都将受到赞赏

android robotium

16
推荐指数
2
解决办法
5222
查看次数

使用gradle的Android仅测试权限

我跑了./gradlew connectedAndroidTest,我需要我的测试APK有一个权限,不应该在任何非测试APK(调试,发布).我已经创建了一个允许的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mypackage">
    <uses-permission android:name="android.permission.SET_ANIMATION_SCALE"/>
</manifest>
Run Code Online (Sandbox Code Playgroud)

然后我将此清单复制到src/androidTest目录,因为gradle android插件的发布说明提示:

0.13.0(2014/09/18)需要Gradle 2.1现在可以为测试应用程序提供清单(src/androidTest/AndroidManifest.xml)

但是,在我的连接测试期间不会应用权限.

如果我创建一个src/debug目录并在那里移动该清单 - 在连接测试期间正确应用权限(但在常规调试版本中也是如此,这是不可取的).

我做错了什么或有错误吗?

android gradle android-testing android-gradle-plugin

13
推荐指数
1
解决办法
3128
查看次数

带有Ant的System.out

我正在谷歌搜索没有成功,弄清楚如何System.out.println/System.out.print在控制台中制作ANT打印消息.消息根本不会出现.我还没有找到任何简单的方法.有没有?

谢谢

java ant

11
推荐指数
2
解决办法
7772
查看次数

在XML中设置工具栏徽标

是否可以在xml中设置工具栏徽标?到目前为止我试过这个:

1.

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    ...
    android:logo="@drawable/my_logo"
    />
Run Code Online (Sandbox Code Playgroud)

2.

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    ...
    app:logo="@drawable/my_logo"
    />
Run Code Online (Sandbox Code Playgroud)

编辑

我在AppCompatActivity中使用工具栏作为操作栏:

setSupportActionBar(findViewById(R.id.toolbar));
Run Code Online (Sandbox Code Playgroud)

我可以从代码中设置徽标:

((Toolbar) findViewById(R.id.toolbar)).setLogo(R.drawable.my_logo);
Run Code Online (Sandbox Code Playgroud)

但我想从布局XML或Style/Theme XML设置徽标.

android android-layout material-design android-toolbar

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

渲染错误; 无法解析@ id/search_edit_frame

我有一个错误,说无法解析@id/search_edit_frame我不知道为什么,我尝试了文件>无效缓存>只需重新启动并重新启动 android工作室也试图更改渲染版本所有我支持的api ..

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   myapp="http://schemas.android.com/apk/res-auto"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   <android.support.v7.widget.SearchView
      android:id="@+id/svSearch"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:textSize="25sp"
      android:textColor="@color/textDefault"
       myapp="@string/search_hint"
       myapp="false" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我正在使用Android Studio 1.2.2并确定它编译android.support.v7.widget(AppCompat)

任何帮助将不胜感激..谢谢

android android-support-library android-studio

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