#java #android
#java #Android
Вопрос:
new TextWatcher
подразумевает красное подчеркивание… почему? Я нашел способ использовать TextWatcher
, просматривая блоги. Большинство людей используют подобное. Чего мне не хватает? Кроме того, я хочу изучить программирование на Android, но я знаю только язык C. Должен ли я сначала изучать Java?
package org.techtown.p4;
import android.os.Bundle;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{
EditText editText;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=(EditText)findViewById(R.id.editTextTextMultiLine);
textView=(TextView)findViewById(R.id.textView1);
String string=editText.getText().toString();
int cnt=string.length();
textView.setText("" cnt);
editText.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
String string=editText.getText().toString();
int cnt=string.length();
textView.setText("" cnt);
}
});
}
}
Комментарии:
1. Приложения для Android написаны на Java или Kotlin, так что да, если вы изучаете эти языки, это может очень помочь.
Ответ №1:
TextWatcher — это интерфейс, вы должны реализовать все методы, определенные в интерфейсе. Если вы используете Android Studio, нажмите ALT INSERT в TextWatcher, IDE подскажет вам, что делать.
editText.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
@Override
public void afterTextChanged(Editable editable) {
}
});
Комментарии:
1. @ddodogas Не могли бы вы принять или поддержать ответ ^_ ^
Ответ №2:
Я думаю, это потому, что вы не реализовали два других метода, которые предоставляются классом TextWatcher, пожалуйста, проверьте приведенный ниже код
field1.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(s.length() != 0)
field2.setText("");
}
});