android 中长按菜单,响应事件中想加一个Toast提示,第一个参数怎么给?
@OverridepublicbooleanonContextItemSelected(MenuItemitem){Stringstr="点击了长按菜单里面的第"+ite...
@Override
public boolean onContextItemSelected(MenuItem item) {
String str = "点击了长按菜单里面的第"+item.getItemId()+"个项目";
Context context = ((LayoutInflater) item).getContext();
context = context.getApplicationContext();
Toast.makeText(context,str,Toast.LENGTH_SHORT).show();//Toast 类
return super.onContextItemSelected(item);
}
以上代码是在一个继承自Fragment的一个类中
我的处理方法是把item强转为LayoutInflater之后,getContext();这样不报错了,但是运行之后,点击对就菜单之后就崩溃了 展开
public boolean onContextItemSelected(MenuItem item) {
String str = "点击了长按菜单里面的第"+item.getItemId()+"个项目";
Context context = ((LayoutInflater) item).getContext();
context = context.getApplicationContext();
Toast.makeText(context,str,Toast.LENGTH_SHORT).show();//Toast 类
return super.onContextItemSelected(item);
}
以上代码是在一个继承自Fragment的一个类中
我的处理方法是把item强转为LayoutInflater之后,getContext();这样不报错了,但是运行之后,点击对就菜单之后就崩溃了 展开
1个回答
展开全部
建议将ApplicationContext做一个全局变量。或者直接使用对应的Activity的this做为Context
追问
又是你哈,先谢谢了
我添加了一个Context类型的成员变量,把之前的点击事件中获得的context给成员变量
在长按菜单中使用这个值,这样有一个不好的地方就是必须先触发一个点击事件,使成员变量有值,然后点击长按菜单没有问题,但是如果在操作长按菜单之前没有操作点击事件那么崩溃,因为成员变量还没有值;
如果用activity.this那种方式吧,我不知道怎么用,在一个继承自Fragment的一个类中的
追答
Fragment中有一个接口叫getActivity(),获取到的这个对象就可以作为Context。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询