Androind如何阻止键盘弹出来 3.8.6,搞了一天了,求大佬帮助

如何阻止键盘出弹来,或着让键盘弹出来的时候 ,不要打开新的界面,就在当前游戏页面弹出键盘,

以下是3.8.6的java中的类, 我已经按AI提示改过了,可还是弹出来了
/****************************************************************************

package com.cocos.lib;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.StateListDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputFilter;
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import java.lang.reflect.Method;

public class CocosEditBoxActivity extends Activity {

// a color of dark green, was used for confirm button background
private static final int DARK_GREEN = Color.parseColor("#1fa014");
private static final int DARK_GREEN_PRESS = Color.parseColor("#008e26");

private static CocosEditBoxActivity sThis = null;
private Cocos2dxEditText mEditText = null;
private Button mButton = null;
private String mButtonTitle = null;
private boolean mConfirmHold = true;
private int mEditTextID = 1;
private int mButtonLayoutID = 2;

/***************************************************************************************
 Inner class.
 **************************************************************************************/
class Cocos2dxEditText extends EditText {
    private final String TAG = "Cocos2dxEditBox";
    private boolean mIsMultiLine = false;
    private TextWatcher mTextWatcher = null;
    private boolean keyboardVisible = false;
    private int mScreenHeight;
    private boolean mCheckKeyboardShowNormally = false;

    public  Cocos2dxEditText(Activity context){
        super(context);
        this.setTextColor(Color.BLACK);

        // 禁止系统软键盘
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            this.setShowSoftInputOnFocus(false);
        } else {
            try {
                Method method = EditText.class.getMethod("setShowSoftInputOnFocus", boolean.class);
                method.setAccessible(true);
                method.invoke(this, false);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        mScreenHeight = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).
                getDefaultDisplay().getHeight();

        mTextWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                // Pass text to c++.
                CocosEditBoxActivity.this.onKeyboardInput(s.toString());
            }
        };
        registKeyboardVisible();
    }

    @Override
    public boolean onCheckIsTextEditor() {
        // 告诉系统这不是典型的文本编辑器,避免触发 IME
        return false;
    }

    @Override
    public android.view.inputmethod.InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        // 直接返回 null,系统无法创建输入连接,自然不会弹出键盘
        return null;
    }
    /***************************************************************************************
     Public functions.
     **************************************************************************************/

    public void show(String defaultValue, int maxLength, boolean isMultiline, boolean confirmHold, String confirmType, String inputType) {
        mIsMultiLine = isMultiline;
        this.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxLength) });
        this.setText(defaultValue);
        if (this.getText().length() >= defaultValue.length()) {
            this.setSelection(defaultValue.length());
        } else {
            this.setSelection(this.getText().length());
        }
        this.setConfirmType(confirmType);
        this.setInputType(inputType, mIsMultiLine);
        this.setVisibility(View.VISIBLE);

        // Open soft keyboard manually. Should request focus to open soft keyboard.
        this.requestFocus();

        this.addListeners();
    }

    public void hide() {
        mEditText.setVisibility(View.INVISIBLE);
        this.removeListeners();
    }

    /***************************************************************************************
     Private functions.
     **************************************************************************************/

    private void setConfirmType(final String confirmType) {
        if (confirmType.contentEquals("done")) {
            this.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
            mButtonTitle = getResources().getString(R.string.done);
        } else if (confirmType.contentEquals("next")) {
            this.setImeOptions(EditorInfo.IME_ACTION_NEXT | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
            mButtonTitle = getResources().getString(R.string.next);
        } else if (confirmType.contentEquals("search")) {
            this.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
            mButtonTitle = getResources().getString(R.string.search);
        } else if (confirmType.contentEquals("go")) {
            this.setImeOptions(EditorInfo.IME_ACTION_GO | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
            mButtonTitle = getResources().getString(R.string.go);
        } else if (confirmType.contentEquals("send")) {
            this.setImeOptions(EditorInfo.IME_ACTION_SEND | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
            mButtonTitle = getResources().getString(R.string.send);
        } else{
            mButtonTitle = null;
            Log.e(TAG, "unknown confirm type " + confirmType);
        }
    }

    private void setInputType(final String inputType, boolean isMultiLine){
        mCheckKeyboardShowNormally = false;
        if (inputType.contentEquals("text")) {
            if (isMultiLine)
                this.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
            else
                this.setInputType(InputType.TYPE_CLASS_TEXT);
        }
        else if (inputType.contentEquals("email"))
            this.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
        else if (inputType.contentEquals("number"))
            this.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
        else if (inputType.contentEquals("phone"))
            this.setInputType(InputType.TYPE_CLASS_PHONE);
        else if (inputType.contentEquals("password")) {
            if (Build.BRAND.equalsIgnoreCase("oppo")) {
                mCheckKeyboardShowNormally = true;
            }
            this.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
        }
        else
            Log.e(TAG, "unknown input type " + inputType);
    }

    private void addListeners() {

        this.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (! mIsMultiLine) {
                    CocosEditBoxActivity.this.hide();
                }

                return false; // pass on to other listeners.
            }
        });


        this.addTextChangedListener(mTextWatcher);
    }

    private void removeListeners() {
        this.setOnEditorActionListener(null);
        this.removeTextChangedListener(mTextWatcher);
    }

    private boolean isSystemAdjustUIWhenPopKeyboard(int bottom) {
        int bottomOffset = 0;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            bottomOffset = getWindow().getDecorView().getRootWindowInsets().getSystemWindowInsetBottom();
        }
        // view will be scrolled to the target position by system,
        if (Math.abs(bottom - bottomOffset) < 10) {
            return true;
        }
        return false;
    }

    private void registKeyboardVisible() {
        getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect r = new Rect();
                getWindowVisibleDisplayFrame(r);
                int heightDiff = getRootView().getHeight() - (r.bottom - r.top);
                // if more than a quarter of the screen, its probably a keyboard
                if (heightDiff > mScreenHeight/4) {
                    if (!keyboardVisible) {
                        keyboardVisible = true;
                    }
                    if (!isSystemAdjustUIWhenPopKeyboard(heightDiff)) {
                        getRootView().scrollTo(0, heightDiff);
                    }
                } else {
                    getRootView().scrollTo(0, 0);
                    if (mCheckKeyboardShowNormally && !keyboardVisible) {
                        Toast.makeText(CocosEditBoxActivity.this, R.string.tip_disable_safe_input_type, Toast.LENGTH_SHORT).show();
                    }
                    if (keyboardVisible) {
                        keyboardVisible = false;
                        CocosEditBoxActivity.this.hide();
                    }
                }
            }
        });
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    CocosEditBoxActivity.sThis = this;

    ViewGroup.LayoutParams frameLayoutParams =
            new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.MATCH_PARENT);
    RelativeLayout frameLayout = new RelativeLayout(this);
    frameLayout.setLayoutParams(frameLayoutParams);
    frameLayout.setClickable(true);
    frameLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CocosEditBoxActivity.this.hide();
        }
    });
    setContentView(frameLayout);

    this.addItems(frameLayout);

    Intent intent = getIntent();
    Bundle extras = null;
    if (null != intent) {
        extras = intent.getExtras();
    }
    if(extras == null){
        show("",
            10,
            false,
            false,
            "done",
            "text"
            );
    } else {
        show(extras.getString("defaultValue"),
            extras.getInt("maxLength"),
            extras.getBoolean("isMultiline"),
            extras.getBoolean("confirmHold"),
            extras.getString("confirmType"),
            extras.getString("inputType"));
    }
}

/***************************************************************************************
 Public functions.
 **************************************************************************************/

/***************************************************************************************
 Private functions.
 **************************************************************************************/
private void addItems(RelativeLayout layout) {
    RelativeLayout myLayout = new RelativeLayout(this);
    myLayout.setBackgroundColor(Color.argb(255, 244, 244, 244));

    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.WRAP_CONTENT);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    layout.addView(myLayout, layoutParams);

    this.addEditText(myLayout);
    this.addButton(myLayout);
}

private int dpToPixel(int dp) {
    final float scale = getResources().getDisplayMetrics().density;
    int px = (int) (dp * scale + 0.5f);
    return px;
}
private void addEditText(RelativeLayout layout) {
    mEditText = new Cocos2dxEditText(this);
    mEditText.setVisibility(View.INVISIBLE);
    mEditText.setGravity(Gravity.CENTER_VERTICAL);
    mEditText.setBackground(getRoundRectShape(18, Color.WHITE, Color.WHITE));
    mEditText.setId(mEditTextID);
    int bottomPadding = dpToPixel(4);
    int leftPadding = dpToPixel(3);
    mEditText.setPadding(leftPadding,bottomPadding,leftPadding,bottomPadding);

    RelativeLayout.LayoutParams editParams = new RelativeLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

    editParams.addRule(RelativeLayout.CENTER_VERTICAL);
    editParams.addRule(RelativeLayout.LEFT_OF, mButtonLayoutID);
    int bottomMargin = dpToPixel(5);
    int leftMargin = dpToPixel(4);
    editParams.setMargins(leftMargin, bottomMargin, bottomMargin, bottomMargin);
    layout.addView(mEditText, editParams);
}

private void addButton(RelativeLayout layout) {
    mButton = new Button(this);
    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    mButton.setTextColor(Color.WHITE);
    mButton.setTextSize(16);
    mButton.setBackground(getRoundRectShape(18, DARK_GREEN, DARK_GREEN_PRESS));
    int paddingLeft = dpToPixel(5);
    mButton.setPadding(paddingLeft,0,paddingLeft,0);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    layoutParams.addRule(RelativeLayout.ALIGN_TOP, mEditTextID);
    layoutParams.addRule(RelativeLayout.ALIGN_BOTTOM, mEditTextID);
    layoutParams.rightMargin = dpToPixel(4);
    layout.addView(mButton, layoutParams);
    mButton.setGravity(Gravity.CENTER);
    mButton.setId(mButtonLayoutID);

    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            CocosEditBoxActivity.this.onKeyboardConfirm(mEditText.getText().toString());

            if (!CocosEditBoxActivity.this.mConfirmHold)
                CocosEditBoxActivity.this.hide();
        }
    });
}

private Drawable getRoundRectShape(int radius, int normalColor, int pressColor) {
    float[] outerRadii = new float[]{radius, radius, radius, radius, radius, radius, radius, radius};
    RoundRectShape roundRectShape = new RoundRectShape(outerRadii, null, null);
    ShapeDrawable shapeDrawableNormal = new ShapeDrawable();
    shapeDrawableNormal.setShape(roundRectShape);
    shapeDrawableNormal.getPaint().setStyle(Paint.Style.FILL);
    shapeDrawableNormal.getPaint().setColor(normalColor);
    ShapeDrawable shapeDrawablePress = new ShapeDrawable();
    shapeDrawablePress.setShape(roundRectShape);
    shapeDrawablePress.getPaint().setStyle(Paint.Style.FILL);
    shapeDrawablePress.getPaint().setColor(pressColor);
    StateListDrawable drawable = new StateListDrawable();
    drawable.addState(new int[]{android.R.attr.state_pressed}, shapeDrawablePress);
    drawable.addState(new int[]{}, shapeDrawableNormal);
    return drawable;
}


private void hide() {
    Utils.hideVirtualButton();
    this.closeKeyboard();
    finish();
}

public void show(String defaultValue, int maxLength, boolean isMultiline, boolean confirmHold, String confirmType, String inputType) {
    mConfirmHold = confirmHold;
    mEditText.show(defaultValue, maxLength, isMultiline, confirmHold, confirmType, inputType);
    mButton.setText(mButtonTitle);
    if (TextUtils.isEmpty(mButtonTitle)) {
        mButton.setVisibility(View.INVISIBLE);
    } else {
        mButton.setVisibility(View.VISIBLE);
    }

    this.openKeyboard();
}

private void closeKeyboard() {
    InputMethodManager imm = (InputMethodManager) getSystemService(this.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);

    this.onKeyboardComplete(mEditText.getText().toString());
}

private void openKeyboard() {

// InputMethodManager imm = (InputMethodManager) getSystemService(this.INPUT_METHOD_SERVICE);
// imm.showSoftInput(mEditText, InputMethodManager.SHOW_IMPLICIT);
}

/***************************************************************************************
 Functions invoked by CPP.
 **************************************************************************************/

private static void showNative(String defaultValue, int maxLength, boolean isMultiline, boolean confirmHold, String confirmType, String inputType) {

    GlobalObject.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Intent i = new Intent(GlobalObject.getActivity(), CocosEditBoxActivity.class);
            i.putExtra("defaultValue", defaultValue);
            i.putExtra("maxLength", maxLength);
            i.putExtra("isMultiline", isMultiline);
            i.putExtra("confirmHold", confirmHold);
            i.putExtra("confirmType", confirmType);
            i.putExtra("inputType", inputType);
            GlobalObject.getActivity().startActivity(i);
        }
    });
}

private static void hideNative() {
    if (null != CocosEditBoxActivity.sThis) {
        GlobalObject.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                CocosEditBoxActivity.sThis.hide();
            }
        });
    }
}

/***************************************************************************************
 Native functions invoked by UI.
 **************************************************************************************/
private void onKeyboardInput(String text) {
    CocosHelper.runOnGameThread(new Runnable() {
        @Override
        public void run() {
            CocosEditBoxActivity.onKeyboardInputNative(text);
        }
    });
}

private void onKeyboardComplete(String text) {
    CocosHelper.runOnGameThread(new Runnable() {
        @Override
        public void run() {
            CocosEditBoxActivity.onKeyboardCompleteNative(text);
        }
    });
}

private void onKeyboardConfirm(String text) {
    CocosHelper.runOnGameThread(new Runnable() {
        @Override
        public void run() {
            CocosEditBoxActivity.onKeyboardConfirmNative(text);
        }
    });
}

private static native void onKeyboardInputNative(String text);
private static native void onKeyboardCompleteNative(String text);
private static native void onKeyboardConfirmNative(String text);

}

===============================
我要怎么改,才能让键盘不弹出来

如果弹出来,能不能不要新搞一个系统输入界面 ,