Reputation: 2710
by this below code i'm trying to show EditText
line count after inserting new line, this code work fine only for first new line and after that, for each type character into EditText
i get inserted new line log on LogCat
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence text, int start, int before, int count) {
if (-1 != text.toString().indexOf("\n")) {
Log.e("new line ", "enter new line" + "");
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
Upvotes: 0
Views: 1815
Reputation: 4531
You have to count newline:
int counter = 0;
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence text, int start, int before, int count) {
if(before==0) {
counter = 0;
for (int i = 0; i < text.toString().length(); i++) {
if (text.toString().charAt(i) == '\n') {
counter++;
}
}
}
Log.e("total new line ", "counter: " + counter);
}
@Override
public void afterTextChanged(Editable s) {
}
});
Upvotes: 3
Reputation: 4032
Try this.
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence text, int start, int before, int count) {
String insertedString = text.toString();
if (text.length() > 0 && insertedString.substring(insertedString.length() - 1).equals("\n")) {
Log.e("new line ", "enter new line " + (channelMessageBox.getLineCount() - 1));
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
Upvotes: 1