这将是一个真正的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代码中的定义会为我创建这个吗?
提前致谢: - )
答案 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;
}
}