android:imeOptions问题

时间:2014-04-23 07:59:41

标签: android android-edittext imeoptions

为什么当EditText使用setOnClickListner时,imeOptions对EditText不起作用?任何人都可以面对这个问题请帮助。

我的 xml 代码

    <EditText
                android:id="@+id/txt_current_password"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="6dp"
                android:layout_marginLeft="7dp"
                android:layout_marginTop="6dp"
                android:background="@drawable/backwithborder"
                android:hint="@string/hint_current_password"
                android:imeOptions="actionNext"
                android:inputType="textPassword"
                android:singleLine="true"
                android:textColor="#b8b8b8"
                android:textSize="17sp"
                android:typeface="sans" >
            </EditText>

    <EditText
                android:id="@+id/txt_new_password"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/txt_current_password"
                android:layout_marginBottom="6dp"
                android:layout_marginLeft="7dp"
                android:layout_marginTop="6dp"
                android:background="@drawable/backwithborder"
                android:hint="@string/hint_new_password"
                android:imeOptions="actionNext"
                android:inputType="textPassword"
                android:singleLine="true"
                android:textColor="#b8b8b8"
                android:textSize="17sp"
                android:typeface="sans" >
        </EditText>


        <EditText
                android:id="@+id/txt_confirm_password"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/txt_new_password"
                android:layout_marginBottom="6dp"
                android:layout_marginLeft="7dp"
                android:layout_marginTop="6dp"
                android:background="@drawable/backwithborder"
                android:hint="@string/hint_confirm_password"
                android:imeOptions="actionDone"
                android:inputType="textPassword"
                android:singleLine="true"
                android:textColor="#b8b8b8"
                android:textSize="17sp"
            android:typeface="sans" >
        </EditText>

我的 java 代码

EditText txtOldPassword = (EditText) findViewById(R.id.txt_current_password);
txtOldPassword.setOnClickListener(new View.OnClickListener() 
    {
            @Override
            public void onClick(View v) 
            {
                txtOldPassword.setFocusable(true);
                txtOldPassword.setFocusableInTouchMode(true);
            }

        });
EditText txtNewPassword = (EditText) findViewById(R.id.txt_new_password);
txtNewPassword.setOnClickListener(new View.OnClickListener() 
    {
            @Override
            public void onClick(View v) 
            {
                txtNewPassword.setFocusable(true);
                txtNewPassword.setFocusableInTouchMode(true);
            }

        });  
EditText txtConfirmPassword = (EditText) findViewById(R.id.txt_confirm_password);
txtConfirmPassword.setOnClickListener(new View.OnClickListener() 
    {
            @Override
            public void onClick(View v) 
            {
                txtConfirmPassword.setFocusable(true);
                txtConfirmPassword.setFocusableInTouchMode(true);
            }

        });     

2 个答案:

答案 0 :(得分:0)

不使用,您将edittext转换为textview

TextView txtOldPassword = (EditText) findViewById(R.id.txt_current_password);

使用

EditText txtOldPassword = (EditText) findViewById(R.id.txt_current_password);

工作代码

<EditText
    android:id="@+id/login_input_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:ems="10"
    android:hint="Username Here"
    android:imeOptions="actionNext"
    android:inputType="text"
    android:singleLine="true">

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/login_input_pass"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/login_input_username"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:ems="10"
    android:hint="Password Here"
    android:imeOptions="actionDone"
    android:inputType="textPassword"
    android:singleLine="true" />

答案 1 :(得分:0)

不确定那里有什么问题?但是如果你想设置焦点,你也必须设置它: txtOldPassword.requestFocus();