Toast和onOnclick,toast k将不会显示

时间:2012-06-23 16:30:34

标签: android onclick toast

有谁知道为什么这个程序不会显示Toast消息?

public class Main extends Activity implements OnClickListener{
/** Called when the activity is first created. */


  ImageButton x = (ImageButton) findViewById(R.id.imageButton1);
  ImageButton i = (ImageButton) findViewById(R.id.imageButton2);
  ImageButton question = (ImageButton) findViewById(R.id.imageButton3);

我创建了一些ImageButons和其他元素并创建了onClick函数

public void onClick(View v) {
            if(v.getId() == R.id.button1) // this works 
            {
                Intent intent = new Intent(this, Second.class);
                intent.putExtra("thetext", et1.getText().toString());
                intent.putExtra("thesize", et2.getText().toString());
                startActivity(intent);
            }
            if(v.getId() == R.id.imageButton2) // this wont work 
            {
                Toast toastI = Toast.makeText(this, "Testing", 5000);
                toastI.setGravity(Gravity.CENTER, 0, 0);
                toastI.show();
            }

当我点击ImageButton i(我运行程序后),toast将不会显示?

5 个答案:

答案 0 :(得分:1)

希望你在imagebuttons上设置onclickListener ..

  i.setOnClickListener(this);

试试这个

Toast.makeText(getApplication(), "Testing", 5000).show();

答案 1 :(得分:0)

尝试使用switch案例代替if,并使用Main.thisgetApplicationContext()代替this

public void onClick(View v) {

switch (v.getId()) {
    case R.id.button1:
    Intent intent = new Intent(Main, Second.class);
            intent.putExtra("thetext", et1.getText().toString());
            intent.putExtra("thesize", et2.getText().toString());
            startActivity(intent);
    break;
    case R.id.imageButton3:
        Toast toastI = Toast.makeText(Main.this, "Testing", 5000);
        toastI.setGravity(Gravity.CENTER, 0, 0);
        toastI.show();
    break;
 }
}

答案 2 :(得分:0)

我认为你的问题是吐痰的长度是5000。 LENGTH_LONGLENGTH_SHORT的值为1和0,因此它们用作标志。所以我不知道如果你把5000(可能没有)会发生什么。同样在java doc上,他们说你应该放或者另一个。所以使用其中一个。

  

public static Toast makeText(Context context,CharSequence text,int   持续时间)自:API等级1制作标准吐司   包含文本视图。

     

参数context要使用的上下文。通常你的应用程序或   活动对象。 text要显示的文本。可以格式化文本。   持续时间显示消息的时间长度。 LENGTH_SHORT或   LENGTH_LONG

答案 3 :(得分:0)

static Toast makeText(Context context, int resId, int duration)

问题是您将5000作为第三个参数传递给方法。 int duration Toast对用户显示的秒数(或毫秒)。 Toast类要求您只传递两个可能的值(这是有道理的,因为否则开发人员会完全滥用吐司消息的长度,而Android市场上的应用程序将如何向用户显示消息完全不一致)。这两个值是:

Toast.LENGTH_SHORT 
Constant Value: 0 (0x00000000) 

Toast.LENGTH_LONG`
Constant Value: 1 (0x00000001)

要解决此问题,请将方法调用更改为

Toast.makeText(this, "Testing", Toast.LENGTH_LONG).show();

另外,请记住在onClickListener上设置ImageButton(只是在黑暗中拍摄)。

答案 4 :(得分:0)

首先实现View.OnClickListener接口,并将侦听器添加到每个图像按钮,如下所示:

x.setOnClickListener(本);

  • 对于toast消息,代码mjst是这样的:

Toast.makeText(Main.this,“把你的留言放在这里”,Toast.LENGTH_LONG).show();