如何在Android应用程序中修复键盘?

时间:2012-10-12 15:12:13

标签: android keyboard

我有这个应用程序动画两个ImageViews ...我设法使用Menu键消失其中一个ImageViews,因为无论软键盘如何都可以使用它。这是代码..

public class Client extends Activity {

    private ImageView mScanner, mScanner2;
    private Animation mAnimation;
    private InputMethodManager mgr ;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mScanner = (ImageView)findViewById(R.id.imageView1);
        mScanner2 = (ImageView) findViewById(R.id.imageView2);

        mAnimation = new TranslateAnimation(0, 0, 0, 500);
        mAnimation.setDuration(10000);
        mAnimation.setFillAfter(true);
        mAnimation.setRepeatCount(-1);
        mAnimation.setRepeatMode(Animation.REVERSE);
        mScanner2.setAnimation(mAnimation);
        mScanner.setAnimation(mAnimation);
        mScanner.setVisibility(View.VISIBLE);
        mScanner2.setVisibility(View.VISIBLE);

        EditText et = (EditText) findViewById(R.id.editText1);

        mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        mgr.showSoftInputFromInputMethod(et.getWindowToken(), 0);

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch(keyCode){
        case KeyEvent.KEYCODE_MENU:
            System.out.println(" Menu Clicked");
            mScanner.setAnimation(null);
            mScanner.setVisibility(View.INVISIBLE);
            return true;
        case KeyEvent.KEYCODE_A:
            System.out.println(" A ");
            mScanner2.setAnimation(null);
            mScanner2.setVisibility(View.INVISIBLE);
            return true;
        }
        return true;
    }
}

我希望键盘固定在屏幕的底部。

2 个答案:

答案 0 :(得分:2)

在您的活动清单中,有configChanges。如果未设置此项,则此类事件(键盘拉动,方向更改等)将重新启动您的活动。 根据您的需要自定义configChanges。

答案 1 :(得分:0)

private InputMethodManager mgr;

mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

修复了键盘。