mAn*_*oid 174 android android-edittext android-view android-activity
我有一个Activity
3 EditText
秒和一个自定义视图,它作用一个专门的键盘来添加信息到EditText
s.
目前我正在将Activity
视图传递给视图,以便我可以获得当前聚焦的编辑文本并更新自定义键盘中的内容.
有没有一种方法可以引用父活动并在EditText
不将活动传递到视图的情况下获得当前的焦点?
Gom*_*ino 278
我刚刚从官方支持库中的MediaRouter中提取了该源代码,到目前为止它工作正常:
private Activity getActivity() {
Context context = getContext();
while (context instanceof ContextWrapper) {
if (context instanceof Activity) {
return (Activity)context;
}
context = ((ContextWrapper)context).getBaseContext();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
dir*_*ira 167
以下方法可以帮助您
Activity host = (Activity) view.getContext()
; 和view.isFocused()
Vla*_*lad 29
更新
tailrec fun Context.getActivity(): Activity? = this as? Activity
?: (this as? ContextWrapper)?.baseContext?.getActivity()
Run Code Online (Sandbox Code Playgroud)
感谢@Westy92
用法:
context.getActivity()
Run Code Online (Sandbox Code Playgroud)
小智 6
我接受了Gomino的答案并对其进行了修改,使其完全适合myUtils.java,因此我可以在任何地方,任何地方使用它。希望有人觉得有用:)
abstract class myUtils {
public static Activity getActivity(View view) {
Context context = view.getContext();
while (context instanceof ContextWrapper) {
if (context instanceof Activity) {
return (Activity)context;
}
context = ((ContextWrapper)context).getBaseContext();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
79300 次 |
最近记录: |