小编Rog*_*ien的帖子

如何在材料设计中使用appCompat自定义上下文操作栏

MainActivity.java

MultiChoiceModeListener在这个类中实现了以下是代码:

listView:

listView.setMultiChoiceModeListener(MainActivity.this);
listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE_MODAL);


    @Override
    public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) {
        switch (arg1.getItemId()) {
        case R.id.save:

            // Close CAB
            arg0.finish();
            return true;

        case R.id.saveto:


            // Close CAB
            arg0.finish();
            return true;
        default:
            return false;
        }
    }

    @Override
    public boolean onCreateActionMode(ActionMode arg0, Menu arg1) {
        arg0.getMenuInflater().inflate(R.menu.save_menu, arg1);
        return true;

    }

    @Override
    public void onDestroyActionMode(ActionMode arg0) {
        listadaptor.removeSelection();
    }

    @Override
    public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
        return false;
    }

    @Override
    public void onItemCheckedStateChanged(ActionMode arg0, int arg1, …
Run Code Online (Sandbox Code Playgroud)

android android-actionmode material-design

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

JUnit4 TextUtils.isEmpty()给出与String.isEmpty()不同的结果

我知道这很奇怪,但这就是我所拥有的.

在此输入图像描述

我正在编写一个单元测试来检查我的Android应用程序的逻辑.在测试执行期间,我发现它在该行上失败:

if (!TextUtils.isEmpty(fromFile))

在该if语句之前,fromFile等于""(空字符串),但它以某种方式传递给它,并与另一个不期望空字符串的逻辑断开.

潜入调试我看到它fromFile.isEmpty()返回正确的结果,但TextUtils.isEmpty(fromFile)说它不是空的.

打开源代码,我看到:

public static boolean isEmpty(@Nullable CharSequence str) {
   if (str == null || str.length() == 0)
       return true;
   else
       return false;
}
Run Code Online (Sandbox Code Playgroud)

和String.java:

public boolean isEmpty() {
   return value.length == 0;
}
Run Code Online (Sandbox Code Playgroud)

我有以下配置:jdk 1.8.0_77

我想避免应用程序中的整个逻辑支持String.isEmpty()只是为了通过测试,因为我需要在Android API 9之前支持代码,哪里String.isEmpty不可用,还要TextUtils.isEmpty()做更多.任何有关澄清和建议的帮助都会有所帮助.

有人面对过吗?我该如何解决?提前致谢!

java string junit android is-empty

8
推荐指数
2
解决办法
2210
查看次数

readBooleanArray抛出RuntimeException(“坏的数组长度”)

我知道可包裹物是隐藏的秘密,但现在我不认为我需要了解它们。

这是我之前的代码:

...
parcel.writeBooleanArray(new boolean[]{booleanValue1, booleanValue2, booleanValue3});
....

boolean[] booleans = new boolean[3];
in.readBooleanArray(booleans);
...
Run Code Online (Sandbox Code Playgroud)

不知何故,它无法在除我之外的许多设备上工作,所以我无法重现它。然后我决定将其更改为:

        ...
    parcel.writeBooleanArray(new boolean[]{booleanValue1});
    parcel.writeBooleanArray(new boolean[]{booleanValue2});
    parcel.writeBooleanArray(new boolean[]{booleanValue3});
        ...

    boolean[] booleans1 = new boolean[1];
    boolean[] booleans2 = new boolean[1];
    boolean[] booleans3 = new boolean[1];
    in.readBooleanArray(booleans1);
    in.readBooleanArray(booleans2); // it crashes here
    in.readBooleanArray(booleans3);
        ....
Run Code Online (Sandbox Code Playgroud)

包裹的源代码:

public final void readBooleanArray(boolean[] val) {
    int N = readInt();
    if (N == val.length) {
        for (int i=0; i<N; i++) {
            val[i] = readInt() != 0;
        }
    } else {
        throw new …
Run Code Online (Sandbox Code Playgroud)

android boolean parcelable runtimeexception

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