EditText locks up my app whenever OnTextChanged activates









up vote
0
down vote

favorite












So, I am trying to get an edit text to put a dollar sign ($) in front of the input text after a user enters it using the following code. Whenever I try to enter anything into the edittext it locks the whole app. I have tried removing the code and the box works fine. What should I change? Or should I use an entirely different solution?



Code:



final EditText minAmt = fragView.findViewById(R.id.minPayment);

minAmt.addTextChangedListener(new TextWatcher()

@Override
public void afterTextChanged(Editable s)

minAmt.setText("$" + minAmt.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)

);


Do I need to finish the overrides for on- and before- text changed?
For reference, I got this code frame from another thread here: Adding Dollar Sign ($) Automatically In Edit Text for Android Studio










share|improve this question

















  • 1




    It locks the whole app means what?
    – Xenolion
    Nov 9 at 20:10














up vote
0
down vote

favorite












So, I am trying to get an edit text to put a dollar sign ($) in front of the input text after a user enters it using the following code. Whenever I try to enter anything into the edittext it locks the whole app. I have tried removing the code and the box works fine. What should I change? Or should I use an entirely different solution?



Code:



final EditText minAmt = fragView.findViewById(R.id.minPayment);

minAmt.addTextChangedListener(new TextWatcher()

@Override
public void afterTextChanged(Editable s)

minAmt.setText("$" + minAmt.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)

);


Do I need to finish the overrides for on- and before- text changed?
For reference, I got this code frame from another thread here: Adding Dollar Sign ($) Automatically In Edit Text for Android Studio










share|improve this question

















  • 1




    It locks the whole app means what?
    – Xenolion
    Nov 9 at 20:10












up vote
0
down vote

favorite









up vote
0
down vote

favorite











So, I am trying to get an edit text to put a dollar sign ($) in front of the input text after a user enters it using the following code. Whenever I try to enter anything into the edittext it locks the whole app. I have tried removing the code and the box works fine. What should I change? Or should I use an entirely different solution?



Code:



final EditText minAmt = fragView.findViewById(R.id.minPayment);

minAmt.addTextChangedListener(new TextWatcher()

@Override
public void afterTextChanged(Editable s)

minAmt.setText("$" + minAmt.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)

);


Do I need to finish the overrides for on- and before- text changed?
For reference, I got this code frame from another thread here: Adding Dollar Sign ($) Automatically In Edit Text for Android Studio










share|improve this question













So, I am trying to get an edit text to put a dollar sign ($) in front of the input text after a user enters it using the following code. Whenever I try to enter anything into the edittext it locks the whole app. I have tried removing the code and the box works fine. What should I change? Or should I use an entirely different solution?



Code:



final EditText minAmt = fragView.findViewById(R.id.minPayment);

minAmt.addTextChangedListener(new TextWatcher()

@Override
public void afterTextChanged(Editable s)

minAmt.setText("$" + minAmt.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)

);


Do I need to finish the overrides for on- and before- text changed?
For reference, I got this code frame from another thread here: Adding Dollar Sign ($) Automatically In Edit Text for Android Studio







android android-edittext






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 9 at 20:07









Tyler Depies-Bobrowitz

52




52







  • 1




    It locks the whole app means what?
    – Xenolion
    Nov 9 at 20:10












  • 1




    It locks the whole app means what?
    – Xenolion
    Nov 9 at 20:10







1




1




It locks the whole app means what?
– Xenolion
Nov 9 at 20:10




It locks the whole app means what?
– Xenolion
Nov 9 at 20:10












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










Your app freezes because you enter an infinite loop. Calling setText inside afterTextChanged will call afterTextChanged. The solution is :



@Override
public void afterTextChanged(Editable s)

minAmt.removeTextChangedListener(this);
minAmt.setText("$" + minAmt.getText().toString());
minAmt.addTextChangedListener(this);






share|improve this answer
















  • 1




    Awesome! Thank you, I missed that possibility in the documentation for the two.
    – Tyler Depies-Bobrowitz
    Nov 11 at 20:26










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53232647%2fedittext-locks-up-my-app-whenever-ontextchanged-activates%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote



accepted










Your app freezes because you enter an infinite loop. Calling setText inside afterTextChanged will call afterTextChanged. The solution is :



@Override
public void afterTextChanged(Editable s)

minAmt.removeTextChangedListener(this);
minAmt.setText("$" + minAmt.getText().toString());
minAmt.addTextChangedListener(this);






share|improve this answer
















  • 1




    Awesome! Thank you, I missed that possibility in the documentation for the two.
    – Tyler Depies-Bobrowitz
    Nov 11 at 20:26














up vote
0
down vote



accepted










Your app freezes because you enter an infinite loop. Calling setText inside afterTextChanged will call afterTextChanged. The solution is :



@Override
public void afterTextChanged(Editable s)

minAmt.removeTextChangedListener(this);
minAmt.setText("$" + minAmt.getText().toString());
minAmt.addTextChangedListener(this);






share|improve this answer
















  • 1




    Awesome! Thank you, I missed that possibility in the documentation for the two.
    – Tyler Depies-Bobrowitz
    Nov 11 at 20:26












up vote
0
down vote



accepted







up vote
0
down vote



accepted






Your app freezes because you enter an infinite loop. Calling setText inside afterTextChanged will call afterTextChanged. The solution is :



@Override
public void afterTextChanged(Editable s)

minAmt.removeTextChangedListener(this);
minAmt.setText("$" + minAmt.getText().toString());
minAmt.addTextChangedListener(this);






share|improve this answer












Your app freezes because you enter an infinite loop. Calling setText inside afterTextChanged will call afterTextChanged. The solution is :



@Override
public void afterTextChanged(Editable s)

minAmt.removeTextChangedListener(this);
minAmt.setText("$" + minAmt.getText().toString());
minAmt.addTextChangedListener(this);







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 9 at 20:14









Whole Brain

146111




146111







  • 1




    Awesome! Thank you, I missed that possibility in the documentation for the two.
    – Tyler Depies-Bobrowitz
    Nov 11 at 20:26












  • 1




    Awesome! Thank you, I missed that possibility in the documentation for the two.
    – Tyler Depies-Bobrowitz
    Nov 11 at 20:26







1




1




Awesome! Thank you, I missed that possibility in the documentation for the two.
– Tyler Depies-Bobrowitz
Nov 11 at 20:26




Awesome! Thank you, I missed that possibility in the documentation for the two.
– Tyler Depies-Bobrowitz
Nov 11 at 20:26

















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53232647%2fedittext-locks-up-my-app-whenever-ontextchanged-activates%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo