Toast--报错

本文介绍了解决在自定义按钮类中使用Toast.makeText()方法时报错的问题。错误原因是传递给makeText()方法的参数不正确。文章提供了正确的参数设置方式,并给出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Toast的makeText()方法报错
帖上一代码,用Toast来简单处理回调机制.但是Toast的makeText()方法老报错:
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Button;
import android.widget.Toast;

public class MyButton  extends  Button {


public MyButton(Context context, AttributeSet attrs) {
   super(context, attrs);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
  //就是这里了

Toast toast=Toast.makeText(MyButton.this, "the callBack test", 5000);
toast.show();
return true;
}
}
报错信息:

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (MyButton, String, int)

------解决方案--------------------
public class MyButton extends Button {

private Context mContext;

public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
   mContext = context;
}

Toast toast=Toast.makeText(mContext, "the callBack test", 5000);
toast.show(); 
------解决方案--------------------
第一个参数,使用  getContext() 或者 getApplicationContext()
第三个参数也不正确,应该是   Toast.makeText(getContext(), "the callBack test", Toast.LENGTH_LONG).show();

转载于:https://www.cnblogs.com/awkflf11/p/6847844.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值