舉辦活動我有一個Activity
3個EditText
S和作用專門的鍵盤將信息添加到EditText
個自定義視圖。的Android得從視圖
目前,我經過Activity
到視圖,這樣我可以得到當前焦點編輯文本和更新從自定義鍵盤的內容。
有引用父活動和獲取當前聚焦EditText
,而沒有經過活動到視圖的方法嗎?
舉辦活動我有一個Activity
3個EditText
S和作用專門的鍵盤將信息添加到EditText
個自定義視圖。的Android得從視圖
目前,我經過Activity
到視圖,這樣我可以得到當前焦點編輯文本和更新從自定義鍵盤的內容。
有引用父活動和獲取當前聚焦EditText
,而沒有經過活動到視圖的方法嗎?
下面的方法可以幫助你
Activity host = (Activity) view.getContext()
;和view.isFocused()
不要忘記,如果您的View未從Activity上下文中調用,getContext()可能並不總是返回一個Activity對象。確保提前做好計劃並提供適當的回退。 –
@WordPressDeveloper - 如何在沒有活動的情況下創建視圖?你的意思是遠程查看?在活動外部是否還有其他視圖情況? –
@kilaka小工具,碎片,RemoteViews,LayoutInflaters情況下,你可以創建不依賴於一個活動視圖的所有情況。 –
我只是拉那源代碼從MediaRouter在official support library,到目前爲止,它工作得很好:
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()
不能再轉換成活動。
相反,下面的代碼工作在Android的7+和6:
private static Activity getActivity(final View view) {
return (Activity) view.findViewById(android.R.id.content).getContext();
}
我把Gomino的answer並修改它完全適合在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;
}
}
正確的答案是gomino。 – djunod