Android从一个视图获取托pipe活动

我有一个Activity与3 EditText和一个自定义视图,这是一个专门的键盘来添加信息到EditText

目前,我将Activity传递到视图中,以便我可以获取当前聚焦的编辑文本并更新自定义键盘中的内容。

有没有一种方法来引用父活动,获取当前聚焦的EditText而不将活动传递到视图中?

以下方法可能会帮助你

  1. Activity host = (Activity) view.getContext() ; 和
  2. view.isFocused()

我只是从官方支持库中的MediaRouter中提取源代码,到目前为止它工作正常:

 private Activity getActivity() { Context context = getContext(); while (context instanceof ContextWrapper) { if (context instanceof Activity) { return (Activity)context; } context = ((ContextWrapper)context).getBaseContext(); } return null; } 

在Android 7+中,视图不再具有对封闭活动的访问权限,因此view.getContext()不能再转换为Activity。

相反,下面的代码适用于Android 7+和6:

 private static Activity getActivity(final View view) { return (Activity) view.findViewById(android.R.id.content).getContext(); }