有谁知道为什么这个程序不会显示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将不会显示?
答案 0 :(得分:1)
希望你在imagebuttons上设置onclickListener ..
i.setOnClickListener(this);
试试这个
Toast.makeText(getApplication(), "Testing", 5000).show();
答案 1 :(得分:0)
尝试使用switch
案例代替if
,并使用Main.this
或getApplicationContext()
代替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_LONG和LENGTH_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.makeText(Main.this,“把你的留言放在这里”,Toast.LENGTH_LONG).show();