带有快速搜索框的自定义键盘工具

问题描述 投票:0回答:1

我有用于阿拉伯语言的自定义键盘和用于从Sqlite数据库中快速搜索框搜索的普通英语键盘。英文键盘工作正常。但是,当弹出阿拉伯语关键字弹出窗口时,我无法键入“编辑文本” ...

我的代码:

 public class MainActivity extends FragmentActivity {

CustomKeyboard mCustomKeyboard;

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

    mCustomKeyboard = new CustomKeyboard(this, R.id.keyboardview,
            R.xml.hexkbd);

    View button = findViewById(R.id.btn_search_en);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            onSearchRequested();
        }
    });

    View button1 = findViewById(R.id.btn_search_ar);
    button1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            toggleKeyboardVisibility();
        }
    });
}

private void toggleKeyboardVisibility() {
    KeyboardView mCustomKeyboard = (KeyboardView) findViewById(R.id.keyboardview);
    int visibility = mCustomKeyboard.getVisibility();
    switch (visibility) {
    case View.VISIBLE:
        mCustomKeyboard.setVisibility(View.INVISIBLE);
        break;
    case View.GONE:
    case View.INVISIBLE:
        mCustomKeyboard.setVisibility(View.VISIBLE);
        break;
    }
}

@Override
public void onBackPressed() {
    // NOTE Trap the back key: when the CustomKeyboard is still visible hide
    // it, only when it is invisible, finish activity
    if (mCustomKeyboard.isCustomKeyboardVisible())
        mCustomKeyboard.hideCustomKeyboard();
    else
        this.finish();
}
}
android keyboard searchbar
1个回答
0
投票

您需要注册要使用键盘的每个EditText,例如:

mCustomKeyboard = new CustomKeyboard(this, R.id.keyboardview,
            R.xml.hexkbd);

// register the edittext
mCustomKeyboard.registerEditText(R.id.edittext);
© www.soinside.com 2019 - 2024. All rights reserved.