Android 4.0-Launcher-FolderEdit-onKeyPreIme

1789 ワード

今週からAndroid 4.0のコードを見始めました.久しぶりにsource codeを見たのか、09年と10年に見た1.5バージョンなのか、今は4.0が出てきて、これは再切り込みバージョンだと思っています.結局、彼はTabletとsmart phonesの統一バージョンです.私が勉強した最初のappはLauncherで、1.5のバージョンではソースコードが一番多いと思っていましたが、4.0ではGalleryでした.次に、Launcherの学習過程で新しいAPIと心得を身につけたことを記録します.
LauncherではFolderという機能が提供されています.Folderは名前を付けることもできます.名前の入力ボックスはEditTextです.ここではEditTextがリロードされています.リロードクラスは:FolderEditTextです.
ソースコードを見てみましょう.
package com.android.launcher2;

import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.EditText;

public class FolderEditText extends EditText {

    private Folder mFolder;

    public FolderEditText(Context context) {
        super(context);
    }

    public FolderEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public FolderEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public void setFolder(Folder folder) {
        mFolder = folder;
    }

    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        // Catch the back button on the soft keyboard so that we can just close the activity
        if (event.getKeyCode() == android.view.KeyEvent.KEYCODE_BACK) {
            mFolder.doneEditingFolderName(true);
        }
        return super.onKeyPreIme(keyCode, event);
    }
}

このclassでOverrideというonKeyPreImeというfunctionは、back key eventをキャプチャして処理するため、つまりIME入力法よりも早くこのEventを処理するためである.後でEditTextでBack key eventを処理すると、この関数を再ロードできます.再ロードしないと、システムはback key eventをIMEに送信します.