按钮单击Android上的事件

时间:2012-01-08 21:24:39

标签: android

这将是一个真正的noob问题,所以请怜悯。我正在尝试在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" />

我在其中一篇帖子中读到了我需要在XML布局中注册onClick事件。这就是我认为我在上面的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代码中的定义会为我创建这个吗?

提前致谢: - )

4 个答案:

答案 0 :(得分:6)

更改

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

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

show()确保您实际显示Toast,否则您只创建Toast。

答案 1 :(得分:1)

Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); - 您需要调用show()方法,因为您现在只是创建吐司而不显示它。

答案 2 :(得分:1)

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

这是正确的

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

答案 3 :(得分:0)

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