2015-09-22 30 views
0

有兩個EditText,如果用戶在第一個字符中輸入四個字符,焦點會自動轉到另一個EditText。當用戶在第二個EditText中輸入第一個字符時,滾動中斷並且第二個編輯文本開始留在鍵盤後面。

另外,當用戶專注於第二個EditText時,它仍然留在鍵盤後面。如果用戶首先關注第一個EditText,然後關閉鍵盤並關注第二個EditText,則滾動工作完美。

這個問題只發生在三星Galaxy Grand Prime(Android 4.4.4版本)
EditText在第一次輸入後停留在鍵盤後

你能幫助這種奇怪的行爲嗎?


MyActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    //..... 

    txtNewPin.setFocusable(true); 
    txtNewPin2.setFocusable(true); 
    txtNewPin.requestFocus(); 

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); 

    txtNewPin.addTextChangedListener(getTextChangedListener_txtNewPin()); 
    txtNewPin2.addTextChangedListener(getTextChangedListener_txtNewPin2()); 

    //..... 
} 

private TextWatcher getTextChangedListener_txtNewPin() { 
    return new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if (s.length() == 4) { 
       txtNewPin.clearFocus(); 
       txtNewPin2.requestFocus(); 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }; 
} 

private TextWatcher getTextChangedListener_txtNewPin2() { 
    return new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int before, int count) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      if (s.length() == 4) { 
       kart_sifre_degistir_button.performClick(); 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }; 
} 


MyActivity XML

第一的EditText ID:yeni_sifre_bir
二的EditText ID:yeni_sifre_iki
三的EditText ID:textview_editText_search(這個完美的作品!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.xxxx.hce.HCEKartSifreDegistirme"> 

    <RelativeLayout 
     android:id="@+id/creditCardBackground" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     ...> 

     .... 

    </RelativeLayout> 

    <LinearLayout 
     android:id="@+id/sinan1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/creditCardBackground" 
     android:layout_marginTop="10dp" 
     android:background="@color/light_gray" 
     android:descendantFocusability="beforeDescendants" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:imeOptions="flagNoFullscreen" 
     android:orientation="vertical"> 

     <com.xxxx.yyyyyy.BlackBrandTextview 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:gravity="center" 
      android:text="4 haneli yeni HCE kart şifrenizi belirleyin" 
      android:textSize="14dp" /> 

     <com.xxxx.yyyyyy.EdittextObject 
      android:id="@+id/yeni_sifre_bir" 
      android:layout_width="240dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginTop="5dp" 
      android:background="@drawable/edittext_shape" 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:gravity="center" 
      android:imeOptions="flagNoFullscreen" 
      android:inputType="numberPassword" 
      android:maxLength="4" 
      android:padding="5dp" 
      android:textSize="24dp" /> 

     <com.xxxx.yyyyyy.BlackBrandTextview 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:gravity="center" 
      android:text="Yeni şifrenizi tekrar giriniz" 
      android:textSize="14dp" /> 

     <com.xxxx.yyyyyy.EdittextObject 
      android:id="@+id/yeni_sifre_iki" 
      android:layout_width="240dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginTop="5dp" 
      android:background="@drawable/edittext_shape" 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:gravity="center" 
      android:imeOptions="flagNoFullscreen" 
      android:inputType="numberPassword" 
      android:maxLength="4" 
      android:padding="5dp" 
      android:textSize="24dp" /> 
    </LinearLayout> 

    <EditText 
     android:id="@+id/textview_editText_search" 
     android:layout_width="300dp" 
     android:layout_height="40dp" 
     android:layout_above="@+id/kart_sifre_degistir_button" 
     android:layout_centerVertical="true" 
     android:background="@color/White" 
     android:paddingLeft="10dp" 
     android:textColor="@color/Black" /> 

    <com.xxxx.yyyyyy.ButtonObject 
     android:id="@+id/kart_sifre_degistir_button" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginBottom="15dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:layout_marginTop="5dp" 
     android:background="@drawable/button_shape_dijitalkartekle" 
     android:text="Onayla" 
     android:textColor="@color/White" /> 
</RelativeLayout> 


的Manifest.xml

<activity 
    android:name="com.xxxxx.yyyyy.MyActivity" 
    android:label="@string/title_activity_hcekart_sifre_degistirme" 
    android:screenOrientation="portrait" > 


我意識到這個問題是由於失去在第二的EditText輸入一個字符後的焦點。它突然失去了焦點!

回答

0

解決。我已經改變了佈局MyActivity.xml如下(使用滾動型和RelativeLayout的代替的LinearLayout)

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <RelativeLayout 
      android:id="@+id/creditCardBackground" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      .... > 

      .... 

     </RelativeLayout> 

     <RelativeLayout 
      android:layout_below="@+id/creditCardBackground" 
      android:layout_marginTop="20dp" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/..."> 

      <com.xxx.yyy.BlackBrandTextview 
       android:id="@+id/limit_info_text" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" 
       android:padding="10dp" 
       android:text="...." 
       android:textColor="@color/..." /> 

      <RelativeLayout 
       android:id="@+id/relative_oran_alt_giris" 
       android:layout_below="@+id/limit_info_text" 
       android:layout_marginLeft="30dp" 
       android:layout_marginRight="30dp" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:visibility="visible" > 

       <com.xxx.yyy.BlackBrandTextview 
        android:id="@+id/tutaroraninfoaltkucuk_oran" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="10dp" 
        android:gravity="center" 
        android:textSize="14dp" 
        android:text="..." /> 

       <com.xxx.yyy.EdittextObject 
        android:id="@+id/yeni_sifre_bir" 
        android:layout_below="@+id/tutaroraninfoaltkucuk_oran" 
        android:layout_width="240dp" 
        android:layout_height="wrap_content" 
        android:background="@drawable/..." 
        android:gravity="center" 
        android:inputType="numberPassword" 
        android:layout_marginTop="5dp" 
        android:maxLength="4" 
        android:padding="5dp" 
        android:textSize="24dp" 
        android:layout_centerHorizontal="true"/> 

       <com.xxx.yyy.BlackBrandTextview 
        android:id="@+id/tutaroraninfoaltkucuk_oran1" 
        android:layout_below="@+id/yeni_sifre_bir" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginTop="10dp" 
        android:gravity="center" 
        android:textSize="14dp" 
        android:text="..." /> 

       <com.xxx.yyy.EdittextObject 
        android:id="@+id/yeni_sifre_iki" 
        android:layout_below="@+id/tutaroraninfoaltkucuk_oran1" 
        android:layout_width="240dp" 
        android:layout_height="wrap_content" 
        android:background="@drawable/..." 
        android:gravity="center" 
        android:inputType="numberPassword" 
        android:layout_marginTop="5dp" 
        android:maxLength="4" 
        android:padding="5dp" 
        android:textSize="24dp" 
        android:layout_alignParentBottom="true" 
        android:layout_centerHorizontal="true"/> 

      </RelativeLayout> 

      <com.xxx.yyy.ButtonObject 
       android:id="@+id/kart_sifre_degistir_button" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginBottom="10dp" 
       android:layout_marginTop="285dp" 
       android:background="@drawable/...." 
       android:text="Onayla" 
       android:textColor="@color/..." /> 

     </RelativeLayout> 

    </RelativeLayout> 

</ScrollView> 
0

嘗試afterTextChanged

private TextWatcher getTextChangedListener_txtNewPin() { 
return new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int before, int count) { 

    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 

    } 

    @Override 
    public void afterTextChanged(Editable editable) { 
     if (editable.length() == 4) { 
      txtNewPin.clearFocus(); 
      txtNewPin2.requestFocus(); 
     } 
    } 
}; 

}

+0

它不工作。另一個想法? – ondermerol

+0

在我看來,clearFocus不起作用。 – ondermerol

+0

但它適用於我的moto g3棒棒糖5.1.1 – arun

相關問題