相关疑难解决方法(0)

如何制作Android自定义键盘?

我想制作一个自定义键盘.我不知道如何在xml和activity中做到这一点.这张照片是我的键盘型号.它只需要数字.

在此输入图像描述

keyboard android

92
推荐指数
7
解决办法
15万
查看次数

Android - 无法捕获退格/删除按下软.键盘

我重写了视图的onKeyDown方法(openGL表面视图)以捕获所有按键.问题是在几个设备上没有捕获KEYCODE_DEL.我已经尝试将onKeyListener添加到视图中,并捕获除了退格键之外的所有内容.

必须有一种方式来听这个关键的新闻事件,但是怎么样?

keyboard android view

34
推荐指数
4
解决办法
3万
查看次数

需要Android和演示者的关键代码表

有人可以指向我以数字形式来自getKeyCode()的键码列表,这样,例如,如果我查看72,我看到"]",如果我查看24,我看到"vol up".

我一直在寻找一个小时,答案不是ASCII表.那太简单了...

我从鼠标呈现器上获取关键代码并尝试拦截它们.有一个键可以输出57和117,我无法拦截,我想在询问它之前解码它但找不到参考.我认为117是转变但我不知道57是什么.即使我拦截它,演示者的那个键也会把我带出我的应用程序.

keyboard android

15
推荐指数
5
解决办法
8万
查看次数

使用customview获取输入文本而不使用edittext android

我创建了customview.每当用户双击视图时,它应显示键盘,用户可以绘制新文本.

Holder是一个扩展视图的自定义视图.但它正在显示键盘.如何获取文字?

 public Holder(Context context, AttributeSet attrs) {
    super(context, attrs);
    Log.e(TAG,"EXE");
    imm = (InputMethodManager)
           context. getSystemService(Context.INPUT_METHOD_SERVICE);



 public boolean onDoubleTap(MotionEvent e) {        

        View view = Holder.this.getRootView();
        imm.showSoftInput(view, InputMethodManager.SHOW_FORCED);
     // imm.showSoftInput(Holder.this, InputMethodManager.SHOW_FORCED);  not working
Run Code Online (Sandbox Code Playgroud)

android canvas android-input-method

15
推荐指数
2
解决办法
3998
查看次数

如何以编程方式打开Android软键盘(数字)?

我知道如何打开软键盘甚至处理其关键事件.我需要打开数字键盘.

PS没有在布局文件中使用Edittexts.

这是我用来以编程方式打开键盘的代码

    if (PasscodeLockUpdated.this != null) {
    PasscodeLockUpdated.this .getWindow()
    .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);}
Run Code Online (Sandbox Code Playgroud)

android numeric-keypad android-softkeyboard programmatically-created

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

如何在android中获取keyCode

我有以下代码:

tv.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
         switch(keyCode) 
            {
                case KeyEvent.KEYCODE_0:
                    Log.v(TAG, "Keycode_0");
                    return true;
                    //break;

                case KeyEvent.KEYCODE_1:
                    Log.v(TAG, "Keycode_1");
                    return true;
                    //break;
                case KeyEvent.KEYCODE_D:
                    Log.v(TAG, "Keycode_D");
                    return true;
                    //break;
                case KeyEvent.KEYCODE_2:
                    Log.v(TAG, "Keycode_2");
                    return true;
                    //break;
                case KeyEvent.KEYCODE_TAB:
                    Log.v(TAG, "Keycode_TAB");
                    return true;
                    //break;
                case KeyEvent.KEYCODE_DEL:
                    Log.v(TAG, "Keycode_DEL");
                    return true;
                    //break;
                case KeyEvent.KEYCODE_COMMA:
                    Log.v(TAG, "Keycode_COMMA");
                    return true;
                    //break;
                case KeyEvent.KEYCODE_ENTER:
                    Log.v(TAG, "KEYCODE_ENTER");
                    i=KeyEvent.KEYCODE_ENTER;
                    Log.v(TAG, "KEYCODE_ENTER"+i);
                    return true;
                    //break;
               case KeyEvent.KEYCODE_SHIFT_LEFT:
                    Log.v(TAG, "KEYCODE_SHIFT_LEFT"+KeyEvent.KEYCODE_SHIFT_LEFT);
                    return true; …
Run Code Online (Sandbox Code Playgroud)

android

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

DispatchKeyEvent侦听正在按下的空格键

我正在开发一个Android项目,我需要检查空格键何时被按下sos我可以执行某个功能.

问题是,它正在模拟器上工作,但不在我的实际设备上.我想这可能是因为我的模拟器使用的是物理键盘,而不是屏幕上的虚拟键盘,但在实际设备上进行测试时,它使用的是虚拟键盘.

我正在尝试调度keyevent

@Override
    public boolean dispatchKeyEvent(KeyEvent event)
    {

        if (event.getKeyCode() == KeyEvent.KEYCODE_SPACE
                && event.getAction() == KeyEvent.ACTION_UP)
        {
            QueryEditor queryEditor = (QueryEditor)getSupportFragmentManager().findFragmentById(R.id.fragment_queryEditor);
            queryEditor.formatQueryText();
            return true;
        }
        }
Run Code Online (Sandbox Code Playgroud)

我也试过按键

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK)
        {
            disconnectDatabase();
        }
        else if (keyCode == KeyEvent.KEYCODE_DEL)
        {
            QueryEditor queryEditor = (QueryEditor)getSupportFragmentManager().findFragmentById(R.id.fragment_queryEditor);
            queryEditor.formatQueryText();
        }

        return super.onKeyDown(keyCode, event);
    }
Run Code Online (Sandbox Code Playgroud)

除非按下后退按钮但我需要空格键来触发事件,否则这些都不会被触发.

感谢您的任何帮助,您可以提供.

UPDATE

下面是我如何创建QueryEditor Fragment并创建事件处理程序的代码

@Override
    public void onActivityCreated(Bundle savedInstanceState)
    {
        super.onActivityCreated(savedInstanceState);

        iQueryEditor = (IQueryEditor)this;
        iErrorHandler = (IErrorHandler)this;

        txtQueryEditor = (EditText)getActivity().findViewById(R.id.query_txtQueryEditor); …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
8578
查看次数

如何在自定义视图上显示数字键盘

我创建了一个自定义视图:

public class MyCustomView extends LinearLayout {...}
Run Code Online (Sandbox Code Playgroud)

当用户触摸它时,我将显示如下键盘:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            requestFocus();
            showKeyboard(true);
        }
        return super.onTouchEvent(event);
    }
    public void showKeyboard(boolean show) {
        InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        if (show) {
          imm.showSoftInput(this, InputMethodManager.SHOW_FORCED);
        } else {
          imm.hideSoftInputFromWindow(getWindowToken(), 0);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,如何显示数字键盘,哪个用户只能输入数字,就像EditText一样?

mEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
mEditText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
Run Code Online (Sandbox Code Playgroud)

keyboard android android-custom-view

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

输入连接 - 如何删除所选文本?

我为Android制作了一个自定义键盘.当我按下我的键盘的退格键我使用

getCurrentInputConnection().deleteSurroundingText(1, 0);
Run Code Online (Sandbox Code Playgroud)

从输入字段中删除一个字母.但是当我选择一些文本然后按退格按钮时,不会删除所选文本.我应该使用什么方法输入连接,以便在按退格按钮时从键盘上删除所选文本?

android ime android-input-method custom-keyword inputconnection

4
推荐指数
2
解决办法
2167
查看次数

如何获取(或制作)对 Android EditText 的 InputConnection 的引用

我正在制作一个我想包含在应用程序中的自定义键盘。我已经知道如何制作系统键盘了。我不想这样做,因为它需要用户安装。

每当用户按下键盘上的一个键时,它应该将键文本发送到EditText当前具有焦点的任何一个(如果有)。

文件指出

编辑器需要与 IME 交互,通过这个InputConnection接口接收命令,通过 InputMethodManager.

下图对此进行了说明(其中ViewEditText)。

在此处输入图片说明

这听起来像是我应该使用输入连接与EditText. 所以我的问题是,我的自定义键盘视图如何获得对当前焦点EditText的输入连接的引用。或者它如何启动这种连接?

有关的

keyboard android android-edittext

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