Note that there are some explanatory texts on larger screens.

plurals
  1. POOnEditTextChanger overwriting Android:Input method
    primarykey
    data
    text
    <p>Using my onEditTextchanger. It works fine when the user inputs 100000, in the EditText box it shows $100,000.00 as the user types. Which is correct. The problem is however if I try to display a numeric keyboard rather than a Qwerty keyboard. By adding in the XML I add android: inputType=”numberDecimal” I lose the formatting of $ and the, and the EditText displays like 100000.00. I have noticed this happens if I change the InputType to Number or Decimal as well. I have attached the code. Any ideas? Again Thanks in advance for your help.</p> <p>XML</p> <pre><code>&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" &gt; &lt;TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Number1" android:textAppearance="?android:attr/textAppearanceMedium" /&gt; &lt;EditText android:id="@+id/txta" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="0" /&gt; &lt;TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Number2" /&gt; &lt;EditText android:id="@+id/txtb" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="0" /&gt; &lt;TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Number3" /&gt; &lt;TextView android:id="@+id/txtc" android:layout_width="match_parent" android:layout_height="wrap_content" /&gt; &lt;TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Your Answer is" android:textAppearance="?android:attr/textAppearanceMedium" /&gt; &lt;TextView android:id="@+id/txtd" android:layout_width="wrap_content" android:layout_height="wrap_content" /&gt; &lt;Button android:id="@+id/buttonCalc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Calculate" /&gt; </code></pre> <p></p> <p>Java</p> <pre><code>public class CalcTestActivity extends Activity { private EditText txta; private EditText txtb; private TextView txtc; private TextView txtd; private double a = 0; private double b = 0; private double c = 0; private double d = 0; private Button buttonCalc; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initControls(); txta.addTextChangedListener(new CurrencyTextWatcher()); txtb.addTextChangedListener(new CurrencyTextWatcher()); } private void initControls() { txta = (EditText)findViewById(R.id.txta); txtb = (EditText)findViewById(R.id.txtb); txtc = (TextView)findViewById(R.id.txtc); txtd = (TextView)findViewById(R.id.txtd); buttonCalc = (Button)findViewById(R.id.buttonCalc); buttonCalc.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {calculate(); }});} private void calculate() { a=Double.parseDouble(txta.getText().toString().replace("$", "").replace(",", "")); b=Double.parseDouble(txtb.getText().toString().replace("$", "").replace(",", "")); c=Math.round(a*.88); txtc.setText(GlobalMoney.FormatValue(c)); d=Math.round((a*.87)+(b*.61)*(c*.25)); txtd.setText(GlobalMoney.FormatValue(d)); } } </code></pre> <p>TextWatcher</p> <pre><code>import java.text.NumberFormat; import android.text.Editable; import android.text.TextWatcher; public class CurrencyTextWatcher implements TextWatcher { boolean mEditing; public CurrencyTextWatcher() { mEditing = false; } public void afterTextChanged(Editable s) { // TODO Auto-generated method stub if(!mEditing) { mEditing = true; String digits = s.toString().replaceAll("\\D", ""); NumberFormat nf = NumberFormat.getCurrencyInstance(); try{ String formatted = nf.format(Double.parseDouble(digits)/100); s.replace(0, s.length(), formatted); } catch (NumberFormatException nfe) { s.clear(); } mEditing = false; } } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload