是否可以向Android键盘添加列表?

时间:2016-01-05 08:00:26

标签: android keyboard

我有一个带键和行的键盘,但我想要一个有列表的布局,当用户点击它时,它会输入它。例如,我想要一个列表而不是通常的字母键盘用滚动的字母表。

1 个答案:

答案 0 :(得分:0)

下一个答案只是一个可以解决问题的想法。 尝试在您的活动中添加DrawerLayout作为菜单。只需添加一个包含字母数组的列表。

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false">

然后,在列表中添加一个Listener,它将使用您在列表中执行的选项卡编辑焦点editText。

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
    ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.open_drawer, R.string.close_drawer);

    mDrawerLayout.setDrawerListener(drawerToggle);
    drawerToggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.navigationView);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            menuItem.setChecked(true);
            onNavDrawerItemClick(menuItem.getItemId());
            return true;
        }
    });
  private void onNavDrawerItemClick(int navItemId) {
    //ceramos el Drawer al hacer click en una opcion
    mDrawerLayout.closeDrawer(GravityCompat.START);
    mSelectedNavItem = navItemId;

    showItem(navItemId);
}

private void showItem(int navItemId) {
    switch (navItemId) {
        case R.id.LetterB:
             if (getActivity().getCurrentFocus() !=null && getActivity().getCurrentFocus() instanceof EditText ) {
            EditText etFocus = (EditText) getActivity().getCurrentFocus();

            etFocus.setText(etFocus.getText() + result.toString());
        }
            break;

        case R.id.letterA:
            if (getActivity().getCurrentFocus() !=null && getActivity().getCurrentFocus() instanceof EditText ) {
            EditText etFocus = (EditText) getActivity().getCurrentFocus();

            etFocus.setText(etFocus.getText() + result.toString());
        }

            break;

        default:
            throw new IllegalStateException("not implemented");
    }
}

有你的键盘&#34;。最后,在清单中禁用Android键盘:

 <activity android:name=".MainActivity" 
          android:windowSoftInputMode="stateHidden" />

希望它会给你一个新想法或者解决你的问题!