2013-10-23 24 views
0

我正在嘗試爲edittext對象添加一個關鍵偵聽器。 這是我.axml如何在C#中的android中添加鍵入事件?

<EditText 
     android:id="@+id/amountTextBox" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

,這是我如何獲得對象 的EditText文本框= FindViewById(Resource.Id.amountTextBox);

我試圖改變文本時,他們按下一個鍵,所以它被格式化爲十進制數,即如果他們輸入5的結果將0.05。

我試過使用textbox.KeyPress但只有當後退鍵或完成鍵被按下時纔會調用它。

有人可以引導我在正確的方向嗎?

+0

這是什麼都與C#呢? –

+0

我正在爲C#中的android開發,因此我需要一個適用於此的解決方案。 – Catalina

回答

0

使用TextWatcher

editText.addTextChangedListener(new TextWathcer(){ 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 

      // TODO Auto-generated method stub 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

      // TODO Auto-generated method stub 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 

      // TODO Auto-generated method stub 
     } 

}); 
+0

是在C#? AddTextChangedListener作爲參數ITextWatcher在我的情況下,所以我不能創建它的一個實例。 – Catalina

+0

不是它的perl,在你的情況下ITextWatcher是一個接口創建一個類來實現它並將它傳遞給addTextChangedListener –

+0

錯別字在某些時候稱爲「perl」在法國... –

0

而不是試圖做到這一點的代碼,你可以添加以下到您的EditText對象:

android:inputType="numberDecimal|numberSigned" 
+0

我試過這個,但它不一定要我想要的結果。與此如果現有文本它0.00和我按5的結果將是0.005而我希望它是0.05。 – Catalina

+0

行 - 你可以實現你自己的InputFilter,如下所示:http://stackoverflow.com/questions/5357455/limit-decimal-places-in-android-edittext –

+0

如果它是c#將是非常有用的,但不幸的是一些該方法只是不存在於C#如Pattern.compile – Catalina

相關問題