Кнопка Click Event на Android

Это будет настоящий вопрос, так что, пожалуйста, помилуй. Я пытаюсь создать окно сообщения на событие нажатия кнопки в Android. Я прочитал несколько примеров в StackOverflow, но я не могу понять концепцию. В моем файле main.xml я определил кнопку xml следующим образом:

<Button android:id="@+id/btnOK" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Display Message" android:onClick="onBtnClicked" /> 

Я прочитал на одной из сообщений, которые мне нужно зарегистрировать событие onClick в XML-макете. Так вот что я думал в коде XML выше. Затем в моем java-файле кода я написал следующий код:

 package com.example.helloandroid; import android.app.Activity; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onBtnClicked(View v) { if(v.getId() == R.id.btnOK) { MessageBox("Hello World"); } } public void MessageBox(String message) { Toast.makeText(this, message, Toast.LENGTH_SHORT); } } 

Для меня это имеет смысл. Но окно сообщения не отображается, когда я нажимаю кнопку. Из вышеперечисленного кода вы можете видеть, что я уже пробовал несколько решений без успеха. Может, мне не хватает слушателя? Я думал, что определение в коде XML создало бы это для меня?

Заранее спасибо 🙂

+ Изменить

 Toast.makeText(this, message, Toast.LENGTH_SHORT); 

к

 Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 

Функция show () гарантирует, что вы на самом деле показываете Toast, иначе вы только создаете Toast.

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); – вам нужно вызвать метод show() поскольку теперь вы просто создаете тост, не показывая его.

 Toast.makeText(this, message, Toast.LENGTH_SHORT); 

это верно

 Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 

Activity должно реализовать View.OnClickListener и реализовать метод onClick (View v)

В методе onCreate вы инициализируете кнопку (после команды setContentView):

 Button b = (Button) findViewById(R.id.btnOK); b.setOnClickListener(this); 

В методе onClick:

 public void onClick(View v) { switch(v.getId()){ case R.id.btnOK: /* the instruccions of the button */ break; } }