在Android中处理软键盘的完成和下一步?

时间:2012-05-18 05:46:58

标签: android android-widget

我有一个简单的登录活动有两个编辑文本文件,用于用户名和密码..现在我想实现以下两个功能,

  1. 如果焦点位于userNameText时触摸下一个按钮,光标应移动到第二个editText字段,即passwordText ..
  2. 当光标位于passwordText字段时按完成,我想调用确定按钮的监听器中调用的函数
  3. enter image description here enter image description here

    我的XML文件看起来像这样

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/online" >
    
        <TextView
            android:id="@+id/userNamelbl"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/userNameLbl" />
    
        <EditText
            android:id="@+id/userNametxt"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/userNamelbl"
            android:background="@android:drawable/editbox_background"
            android:hint="@string/userNameTxt"
            android:maxLines="1"
            android:nextFocusDown="@+id/passwordtxt"
            android:singleLine="true" />
    
        <TextView
            android:id="@+id/passwordlbl"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/userNametxt"
            android:text="@string/passwordLbl" />
    
        <EditText
            android:id="@+id/passwordtxt"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/passwordlbl"
            android:background="@android:drawable/editbox_background"
            android:hint="@string/passwordTxt"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true" />
    
        <Button
            android:id="@+id/okBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@id/passwordtxt"
            android:layout_marginLeft="10dip"
            android:text="@string/okLbl" />
    
        <Button
            android:id="@+id/cancelBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/okBtn"
            android:layout_toLeftOf="@id/okBtn"
            android:text="@string/cancelLbl" />
    
    </RelativeLayout>
    

1 个答案:

答案 0 :(得分:1)

由anDroider请求 - 不是答案

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/logo" />

        <EditText
            android:id="@+id/loginuser"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:ems="10"
            android:hint="@string/username_string"
            android:inputType="textEmailAddress" >

        </EditText>

        <EditText
            android:id="@+id/loginpass"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/password_string"
            android:inputType="textPassword" />

        <Button
            android:id="@+id/loginbtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:clickable="true"
            android:text="Login" />

    </LinearLayout>

编辑:这部分是答案

使用OnEditorActionListener并听取要按下的完成键。