2016-08-08 9 views
1

数字の前にドル記号を自動的に入力する編集テキストが必要です。 Androidのメーカー

例 $ 500

EDIT:編集テキストが使用されたとき(タップすると)

$の追加は行われるべきです。通貨はCADで計算されます。しかし、ドル記号は、フィールドが何であるかのためのリマインダとして機能します

+0

何を試しましたか?この追加は、いつ入力を開始する前か、後に行う必要がありますか?何らかのタイプのラベルを使用するのではなく、テキストボックスに$を含めるのはなぜですか?デバイスから現地通貨を使用していますか、またはUSD(またはCADなど)を使用していますか? –

+0

$の追加は、編集テキストが使用されたとき(タップされたとき)に行われます。通貨はCADで計算されます。しかしドル記号は、そのフィールドが何であるかを思い出させるものです。 – Dev

答えて

4

onChangeリスナを追加して、入力が完了した後に$を挿入するだけです。

private EditText yourEditText; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 
    yourEditText = (EditText) findViewById(R.id.yourEditTextId); 

    yourEditText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void afterTextChanged(Editable s) { 
     yourEditText.setText("$" + yourEditText.getText().toString()); 
     } 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 
     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) {} 
    }); 
} 
+0

'afterTextChanged'と他のすべてをオーバーライドする必要があります。 –

+2

'if(yourEditText.getText()。toString()。startsWith(" $ "))return;'を追加して、テキストを変更するたびにコードが別の$記号を追加しないようにします。 – Thommy

-1
editText.setText("$"); 

「$」記号が、これの欠点があらかじめ入力EDITTEXT、その後のEditTextのユーザータップは、そのユーザは、「$を削除することができている場合には"サイン。

この問題のもう1つの解決策は、editText left drawableを "$"または "$ image"に設定することです。ユーザーがsaveやsubmitなどのアクションをトリガーした後、editTextの前に "$"を追加します。

+0

あなたの恐ろしいフォーマットのために私はdownvoted –

+0

あなたは本当にCTRL + Kを押すのが怠惰ですか? –

+0

この解決法はうまくいかず、 'editText'のテキストを$に設定すると、テキスト全体がそのテキストに置き換えられます。 –

関連する問題