Я новичок в Android Studio, просмотрел официальный учебник и обнаружил этот код:
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user taps the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
Однако я не понимаю, как этот метод sendMessage() связан с кнопкой, которую мы сделали в учебнике. В какой строке упоминается, что этот метод соответствует кнопке с именем button_send и значением Send?




В вашем файле layout должен быть атрибут android:onClick = "sendMessage", для которого вы хотите вызывать эту функцию при каждом нажатии.
Вам не нужно самостоятельно связывать кнопку с этим методом, атрибут android:onClick сделает это за вас. Если вы хотите связать эту кнопку с этой функцией самостоятельно, вам нужно будет передать id этой кнопке, используя android:id = "@+id/button_send", а затем ссылку следующим образом:
Button send = (Button) findViewById(R.id.button_send);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage(v);
}
});
В XML добавьте этот атрибут "android: onClick =" $ {methodName} "в элемент Button.
ИЛИ ЖЕ:
Вы можете создать объект кнопки и ссылку на пользовательский интерфейс.
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Refference UI
Button button = findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
sendMessage(view);
}
});
}
/** Called when the user taps the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
Возможный дубликат Как обрабатывать нажатие кнопки с помощью XML onClick внутри фрагментов