2012-01-08 52 views
6

Đây sẽ là một câu hỏi thực sự, vì vậy xin hãy thương xót. Tôi đang cố gắng tạo một hộp thông báo trên một sự kiện bấm nút trong Android. Tôi đã đọc một số ví dụ về StackOverflow, nhưng tôi không thể hiểu được khái niệm này. Trong tệp main.xml của tôi, tôi đã xác định nút xml như sau:Sự kiện nhấp vào nút trên Android

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

Tôi đọc trên một trong các bài đăng mà tôi cần phải đăng ký sự kiện onClick trong bố cục XML. Vì vậy, đó là những gì tôi nghĩ rằng tôi đã làm trong mã XML ở trên. Sau đó, trong tệp mã java của tôi, tôi đã viết mã sau:

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); 
    } 
} 

Với tôi, điều này có ý nghĩa. Nhưng hộp tin nhắn không hiển thị khi tôi nhấp vào nút. Từ mã nhập khẩu ở trên, bạn có thể thấy rằng tôi đã thử một vài giải pháp mà không thành công. Tôi có lẽ thiếu một người nghe? Tôi nghĩ rằng định nghĩa trong mã XML sẽ tạo ra điều này cho tôi?

Cảm ơn trước :-)

Trả lời

6

Thay đổi

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

Để

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

Các show() làm cho chắc chắn rằng bạn thực sự hiển thị các Toast, nếu không bạn chỉ được tạo ra Toast.

+0

Cảm ơn bạn rất nhiều! Điều này đã làm việc! –

1

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); - bạn cần gọi phương thức show() vì bây giờ bạn chỉ đang tạo bánh mì nướng mà không hiển thị nó.

+0

Cảm ơn bạn rất nhiều! –

0

Hoạt động phải thực hiện một View.OnClickListener, và thực hiện các phương pháp onClick (View v)

trong phương pháp onCreate, bạn phải khởi tạo nút (sau khi setContentView hướng dẫn):

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

trong phương pháp onClick:

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

Cảm ơn bạn đã phản hồi! –

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

này là đúng

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 
Các vấn đề liên quan