Activity
には3 EditText
があり、特殊なキーボードを使ってEditText
に情報を追加するカスタムビューがあります。Android get hostingビューからのアクティビティ
現在、Activity
をビューに渡しているので、現在フォーカスのある編集テキストを取得してカスタムキーボードから内容を更新できます。
親アクティビティを参照して、アクティビティをビューに渡さずに現在フォーカスされているEditText
を取得する方法はありますか?
Activity
には3 EditText
があり、特殊なキーボードを使ってEditText
に情報を追加するカスタムビューがあります。Android get hostingビューからのアクティビティ
現在、Activity
をビューに渡しているので、現在フォーカスのある編集テキストを取得してカスタムキーボードから内容を更新できます。
親アクティビティを参照して、アクティビティをビューに渡さずに現在フォーカスされているEditText
を取得する方法はありますか?
次の方法は、あなたの
Activity host = (Activity) view.getContext()
を助けるかもしれません。そしてview.isFocused()
あなたのビューがアクティビティコンテキストから呼び出されない場合、 'getContext()'が常にActivityオブジェクトを返すとは限りません。これを先に計画し、適切なフォールバックを提供するようにしてください。 –
@WordPressDeveloper - アクティビティなしでビューを作成するにはどうすればいいですか?あなたはリモートビューを意味しますか?アクティビティの外で作成されたビューの他のケースはありますか? –
@kilaka Widgets、Fragments、RemoteViews、LayoutInflatersはすべて、アクティビティに関連付けられていないビューを作成する場合があります。 –
は、私はちょうどofficial support libraryにMediaRouterからそのソースコードを引っ張られ、これまでのところ、それが正常に動作します:アンドロイドで
private Activity getActivity() {
Context context = getContext();
while (context instanceof ContextWrapper) {
if (context instanceof Activity) {
return (Activity)context;
}
context = ((ContextWrapper)context).getBaseContext();
}
return null;
}
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;
}
}
正解はゴミノです。 – djunod