你的位置:首页 > 操作系统

[操作系统]EditText切换输入法软件的enter按键,实现跳到下一个EditText或搜索等


 首先,输入法软件的enter键其实是可以变的,可以变next,搜索等等

 例如:实现一个登陆界面

 代码如下: 

<RelativeLayout

android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"><EditText

android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="username"
android:imeOptions="actionNext"
android:nextFocusForward="@+id/et_password"
android:singleLine="true"
/>
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="password"
android:imeOptions="actionDone"
android:layout_below="@id/et_username"
android:nextFocusForward="@+id/btn_login"
android:singleLine="true"
/>
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="login"
android:layout_below="@id/et_password"
/>
</RelativeLayout>

 

android:imeOptions="actionNext"   //这个属性可以指定输入法enter的功能,actionNext - 下一步    actionSearch 等等

  android:nextFocusForward="@+id/et_password" //指定下一个view 取得焦点

  这样当你在输入username 后,按下输入法的下一步,就会调到password的输入框里。 (这个两个属性是父类view的属性,so)

 

  当你输完密码,password的EditText里有属性android:imeOptions="actionDone",你也可以实现对它监听

  代码如下:

EditText etPassWord = (EditText) findViewById(R.id.et_password);
etPassWord.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  @Override
  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  if(actionId == EditorInfo.IME_ACTION_DONE){
    Toast.makeText(MainActivity.this,"Login",Toast.LENGTH_SHORT).show();
    //...实现login功能
  }
    return false;
  }
});

 

这是我发布的第一个技术博客,希望大家喜欢,有什么问题,也希望大家多多交流,共同进步。

以后还会有更多的关于android技术的文章。