android 没有为类型 CatchService 定义方法 findViewById(int)
我自定义了一个服务,负责弹出通知的。而通知的界面是自定义的。并且通知界面上会有一个按钮。我现在想获取这个按钮。我知道只有继承了activity,才能使用findViewB...
我自定义了一个服务,负责弹出通知的。而通知的界面是自定义的。并且通知界面上会有一个按钮。我现在想获取这个按钮。我知道只有继承了activity,才能使用findViewById方法(public class MainInfo extends Activity)。我如何在服务类中定位这个button呢?
public class CatchService extends Service{
public void onCreate() {
btnShowInfo = (Button)findViewById(R.id.btnShowInfo); //错误提示:没有为类型 CatchService 定义方法 findViewById(int)
}
} 展开
public class CatchService extends Service{
public void onCreate() {
btnShowInfo = (Button)findViewById(R.id.btnShowInfo); //错误提示:没有为类型 CatchService 定义方法 findViewById(int)
}
} 展开
4个回答
展开全部
findViewById()
通常是activity和dialog可以直接这样用,因为本身有setContentView(),
父类设置了此方法
/**
* Finds a view that was identified by the id attribute from the XML that
* was processed in {@link #onCreate}.
*
* @return The view if found or null otherwise.
*/
public View findViewById(int id) {
return getWindow().findViewById(id);
}
Service是没有视图的,不能直接使举镇用findViewById,如果你inflate了橘判一个View对象,可以写成view.findViewById,view就是你加载的View对圆答改象
展开全部
服务是不可见的。圆野侍当然不能有Button,弹出通知以后点击通知进脊消入的应该是橘吵activity啊,怎么还用服务呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
findViewById是View类的方法,你可以得到 【自尘乱巧定义的通知的界面】,通过通知的View得到Button。陪枣
另外, 不应该在Service里派键操作UI的东西。
另外, 不应该在Service里派键操作UI的东西。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
LayoutInflater mInflater = LayoutInflater.from(getApplicationContext());
View view = mInflater.inflate(R.layout.main,
null);/首备/和郑你自定义者棚毁View的布局文件
Button btnShowInfo = (Button)view.findViewById(R.id.btn);
试试这个
View view = mInflater.inflate(R.layout.main,
null);/首备/和郑你自定义者棚毁View的布局文件
Button btnShowInfo = (Button)view.findViewById(R.id.btn);
试试这个
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询