Android 如何将手表视图存根的findViewById()替换为LayoutInflater.inflate()

Android 如何将手表视图存根的findViewById()替换为LayoutInflater.inflate(),android,android-layout,android-service,wear-os,Android,Android Layout,Android Service,Wear Os,我有一个手表应用程序,但正在研究用系统覆盖窗口替换活动 可穿戴设备布局充气的标准方法是: WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub); 但是,如果我不再使用活动,我将在服务器中创建系统覆盖窗口。搜索如何做到这一点,所有答案都建议使用LayoutInflator的充气()方法。但是,它将资源作为参数,而不是资源id 如何在不使用findViewById()的情况下加载WatchViewStub?

我有一个手表应用程序,但正在研究用系统覆盖窗口替换活动

可穿戴设备布局充气的标准方法是:

 WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
但是,如果我不再使用活动,我将在服务器中创建系统覆盖窗口。搜索如何做到这一点,所有答案都建议使用
LayoutInflator的充气()方法。但是,它将资源作为参数,而不是资源id

如何在不使用findViewById()的情况下加载WatchViewStub?
或者有没有一种方法可以从服务中使用findViewById()。

您可以在
活动中调用
findViewById()
,因为您已经通过
setContentView()
设置了内容视图(根视图)。现在,在膨胀视图时,将膨胀根目录的
视图
,然后在该布局上调用
findViewById()
,例如:

View rootView = LayoutInflater.from(context).inflate(R.layout.some_layout, parent, false);
WatchViewStub stub = (WatchViewStub) rootView.findViewById(R.id.watch_view_stub);