2014-04-17 35 views
3

客戶正在測試我爲他們製作的Android應用程序,他們正在使用平板電腦。他們說他們不能在EditText中輸入數字,但它似乎可以在我的手機上使用。什麼可能是一個原因或這?EditText不接受編號

這裏是一個特殊的EditText代碼:

pWord = (EditText)findViewById(R.id.passwordsignin); 
     y = false; 
     signIn = (Button) findViewById(R.id.signin); 
     pWord.setOnKeyListener(new OnKeyListener(){ 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER){ 
        y = true; 
        new RegisterDeviceAsynctask().execute(); 
       } 
       return true; 
      } 

     }); 

和XML:

<EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textPassword" 
      android:ems="10" 
      android:id="@+id/passwordsignin" 
      android:layout_below="@+id/emailsignin" 
      android:layout_centerHorizontal="true" 
      android:hint="Password" 
      android:layout_marginTop="10dip"/> 

編輯:當我結束了setOnKeyListener代碼問題結束。任何想法,爲什麼這可能是?

+0

介意確切的平板電腦包括Android API的版本? – zgc7009

+0

它是一個華碩變壓器墊; android版本4.2.1。 – shreyashirday

回答

0

告訴您的客戶端使用兩種類型的文本,例如:android:inputType =「typeOne | typeTwo」...更改typeOne和Two並使用Log打印實際輸出。

+0

對不起,我不知道我明白。你能舉個例子嗎? – shreyashirday

+0

更改字段的類型,並將「數字」用於測試,僅限數字。 –

+1

請參閱編輯 – shreyashirday

0

一些建議: 1.您的android:inputType =「textPassword」不會讓任何人看到輸入內容。嘗試更改android:inputType =「text」,以便查看是否輸入了預期的字符。這將讓你調試問題。用戶可能會忘記。 2.嘗試記錄密碼或將其放入Toast,以便用戶可以看到他們輸入的內容。

以上建議僅適用於調試期間。對於發佈,你不希望有這些。您的用戶應該在調試期後(或之前,改爲臨時密碼,然後將其更改回真實密碼)更改密碼。

+0

請參閱編輯 – shreyashirday

+0

@ user3140562 - setOnKeyListener用於硬件鍵盤。我會研究Stephan Branczyk的建議,因爲您可能正在處理不同的硬件環境和/或製造商特定的問題。 – Gravitoid

0

this嘗試

android:inputType="TYPE_TEXT_VARIATION_PASSWORD|TYPE_NUMBER_VARIATION_PASSWORD" 

這將確保適當的鍵盤/輸入方法中,選擇它(這可以依賴於實際的硬件製造商)。

如果這不起作用,請要求他們將物理鍵盤與平板電腦分開,以使軟件鍵盤出現。

如果這不起作用,請查看他們是否沒有安裝第三方自定義鍵盤。我們不僅擁有不同的硬件製造商,還因爲人們可以從Google Play安裝自己的鍵盤,這是另一種可能性。

如果這不起作用,請讓他們截取他們正在使用的鍵盤的屏幕截圖,以最佳方式匿名化屏幕截圖,然後將其張貼在您的問題的這裏。

0

只要改變YOUE代碼位:

pWord = (EditText)findViewById(R.id.passwordsignin); 
     y = false; 
     signIn = (Button) findViewById(R.id.signin); 
     pWord.setOnKeyListener(new OnKeyListener(){ 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER){ 
        y = true; 
        new RegisterDeviceAsynctask().execute(); 
        return true; 
       } 
       return false; 
      } 

     }); 
-1

只需使用此代碼爲您SetOnKeyListener

if (keycode==keyevent.keyback) 
{ 
... 
} 
else 
{ 
return false; 
}