Android从一个视图获取托pipe活动
我有一个Activity
与3 EditText
和一个自定义视图,这是一个专门的键盘来添加信息到EditText
。
目前,我将Activity
传递到视图中,以便我可以获取当前聚焦的编辑文本并更新自定义键盘中的内容。
有没有一种方法来引用父活动,获取当前聚焦的EditText
而不将活动传递到视图中?
以下方法可能会帮助你
-
Activity host = (Activity) view.getContext()
; 和 -
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(); }