小编eve*_*nro的帖子

在显示使用nextFocusDown设置的键盘后切换片段时Android应用程序崩溃

我有一个应用程序,可以很好地处理基于导航栏交互切换的多个片段.其中一个屏幕有多个文本字段,我决定订购这些字段,因此键盘"next"会自动将用户带到下一个可填写的文本字段nextFocusDown.最后一个导致导致RadioGroup显示"完成"按钮.

该领域是这样的(他们是内LinearLayout是内NestedScrollView内的另一个LinearLayout即根目录下FrameLayout):

<EditText
    android:id="@+id/firstName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName|textCapWords"
    android:nextFocusDown="@id/lastName"
    android:text="" />
<EditText
    android:id="@+id/lastName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName|textCapWords"
    android:nextFocusDown="@id/email"
    android:text="" />
<EditText
    android:id="@+id/email"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textEmailAddress"
    android:nextFocusDown="@id/localId"
    android:text="" />
Run Code Online (Sandbox Code Playgroud)

还有更多字段,其中一些包括文本提示等.

如果我运行应用程序,选择一个字段,然后点击"下一步"按钮,直到键盘自行消失 - 一切正常.当我选择一个字段时出现问题,键盘出现,然后我点击了导致键盘消失的安卓向下按钮.执行此操作后,此屏幕中的所有内容看起来都很好,一切正常,直到我切换片段,然后应用程序崩溃,我在日志中看到这些错误:

04-10 00:12:24.763 redacted E/AndroidRuntime: FATAL EXCEPTION: main
    Process: redacted, PID: 24660
    java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.inputmethod.InputConnection.closeConnection()' on a null object reference
        at android.view.inputmethod.InputConnectionWrapper.closeConnection(InputConnectionWrapper.java:270)
        at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:541)
        at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at …
Run Code Online (Sandbox Code Playgroud)

android android-softkeyboard android-fragments

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

无法使用 PHPhotoLibrary 将 UIImage 保存到相机胶卷

我正在尝试将 UIImage 保存到相机胶卷。苹果提出的UIImageWriteToSavedPhotosAlbum过时,所以我使用的(同为避免ALAssets),该部队使用PhotoLibrary

这是我正在使用的代码:

定义:

var rollCollection : PHAssetCollection!;
Run Code Online (Sandbox Code Playgroud)

初始化:

let result = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .SmartAlbumUserLibrary, options: nil);
rollCollection = result.firstObject as? PHAssetCollection;
Run Code Online (Sandbox Code Playgroud)

保存图片的代码:

    if (rollCollection != nil){
        PHPhotoLibrary.sharedPhotoLibrary().performChanges({
            let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(
                self.originalImg!);

            let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.rollCollection!);
            let assetPlaceHolder = assetRequest.placeholderForCreatedAsset;
            albumChangeRequest!.addAssets([assetPlaceHolder!])

            }, completionHandler: { success, error in
                dispatch_async(dispatch_get_main_queue(), {
                    print ("\(error!)");
                    if (!success){
                        self.presentViewController(self.alertCantSave!, animated: false, completion: nil);
                    }
                    else {
                        self.presentViewController(self.alertSaved!, animated: false, completion: nil);
                    }
                });

        })
    }
    else …
Run Code Online (Sandbox Code Playgroud)

uiimage ios swift phphotolibrary

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

SIMD内在函数 - 分段错误

我正在运行以下代码:

#include <emmintrin.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argv, char** argc)
{

        float a[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
        float b[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
        float c[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};

        __m128 *v_a = (__m128*)(a+1); // Trying to create c[i] = a[i=1] * b[i];
        __m128 *v_b = (__m128*)(b);
        __m128 *v_c = (__m128*)(c);

        for (int i=0; i < 1; i++) …
Run Code Online (Sandbox Code Playgroud)

c x86 sse simd

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