Android问题集(五)——解决提示:The method **() is undefined for the type ***()

本文介绍了如何在非Activity子类的方法中调用Activity类特有的方法,通过将Activity作为方法参数,利用上下文Context来实现方法调用,解决了Themethodisundefined的错误提示。提供了具体示例和解决步骤,帮助开发者解决此类问题。

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

使用情景:在非Activity子类方法中,有时想要调用Activity类特有的方法,系统会提示无该方法The method is undefined。


思路
将Activity的父类Context作为方法参数,通过context调用该方法。


例一:在无继承类public class LostFocus{ }的方法linearLayoutLostFocus(final LinearLayout linearLayout)中,调用系统服务getSystemService隐藏输入法:

 InputMethodManager imm = 
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

eclipse提示出错:
这里写图片描述

解决方法:将Activity作为方法形参——把方法linearLayoutLostFocus(final LinearLayout linearLayout)改写成
linearLayout(final LinearLayout linearLayout,final Context context),并将getSystemService()改写成context.getSystemService()即可解决问题。

完整linearLayoutLostFocus()方法详见:http://blog.youkuaiyun.com/youngwm/article/details/48165455


总结:遇到调用的方法(假设为:a())提示The method ** is undefined 时:
1、检查方法a()所在类(假设为:A.class)是否有被当前类引用
2、若没有,尝试将该方法(A.class)作为当前方法的参数,通过A.a()调用该方法。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值