Проблема с getId()

Есть поле ввода и 2 кнопки. ок и выйти. При нажатии на кнопку вылетает сразу "Упс, ошибка". В чем дело? У чувака на видосе работает замечательно.введите сюда описание изображения

public class MainActivity extends AppCompatActivity {

EditText mEditText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mEditText = (EditText) findViewById(R.id.userName);
}


public void onClick(View view) {
    if (mEditText.getId() == R.id.okButton){
        String txt = mEditText.getText().toString().trim();
        //из объекта получаем текст и преобр его в стринг. trim == убрать лишние пробелы.

        //далее проверяем длинну текста, есть ли там вообще что-то
        if (txt.length() > 0){
            Toast.makeText(this, "Hello, " + txt, Toast.LENGTH_LONG).show();
        }
        mEditText.setText(null); // очищаем поле ввода после вывода текста.
    }
    else if(mEditText.getId() == R.id.cancelButton){
        mEditText.setText(null); // очищаем поле ввода.
    }
    else{
        Toast.makeText(this, "Упс, что-то пошло не так", Toast.LENGTH_LONG).show();
    }
    /*switch (mEditText.getId()){ //проверяем id, id присвоит уникальный студия.
        case R.id.okButton:
            String txt = mEditText.getText().toString().trim();
            //из объекта получаем текст и преобр его в стринг. trim == убрать лишние пробелы.

            //далее проверяем длинну текста, есть ли там вообще что-то
            if (txt.length() > 0){
                Toast.makeText(this, "Hello, " + txt, Toast.LENGTH_LONG).show();
            }
            mEditText.setText(null); // очищаем поле ввода после вывода текста.
            break;

        case R.id.cancelButton:
            mEditText.setText(null); // очищаем поле ввода.
            break;

        default:
            Toast.makeText(this, "Упс, что-то пошло не так", Toast.LENGTH_LONG).show();
    }*/
}

}


Ответы (1 шт):

Автор решения: woesss

Потому что вы сравниваете id поля ввода с айдишниками кнопок:

if (mEditText.getId() == R.id.okButton)

Тогда как вам нужно определить по какой кнопке кликнули.
Для этого нужно сравнить id вью, которая прилетела параметром метода onClick:

if (view.getId() == R.id.okButton)
→ Ссылка