コンテキストからビューまたはfindViewById()を取得したいですか?または意図から?
ブロードキャストレシーバーで特定のビューに到達しようとしていますが、onReceiveのパラメーターはコンテキストと意図です。
まあ、私にはクラスがあり、その中に私の放送受信機があります。今、私はそれから放送受信機を分離しようとしていますが、分離した放送受信機クラスからクラスのビューと通信できるようにする方法が必要です。
ありがとう。
たとえば、任意のtextViewを見つけることができます。
TextView textView = (TextView) ((Activity) context).findViewById(R.id.textView1);
コンテキストから始めて、関連付けられたアクティビティのルートビューを取得できます。
View rootView = ((Activity)_context).Window.DecorView.FindViewById(Android.Resource.Id.Content);
Raw Androidでは次のようになります。
View rootView = ((Activity)mContext).getWindow().getDecorView().findViewById(Android.R.id.content)
次に、この上でfindViewByIdを呼び出すだけです
View v = rootView.findViewById(R.id.your_view_id);
ブロードキャストレシーバーでは、インフレーションを介してXMLリソースからルートレイアウトにアクセスし、findViewByid()を使用してこのルートレイアウトからすべてのビューを検索できます。
View view = View.inflate(context, R.layout.ROOT_LAYOUT, null);
これで、「view」経由でビューにアクセスし、ビュータイプにキャストできます。
myImage = (ImageView) view.findViewById(R.id.my_image);
最初にこれを使用します:
LayoutInflater inflater = (LayoutInflater) Read_file.this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Read file is current activity in which you want your context.
View layout = inflater.inflate(R.layout.your_layout_name,(ViewGroup)findViewById(R.id.layout_name_id));
これを使用して、レイアウト内の任意の要素を見つけることができます。
ImageView myImage = (ImageView) layout.findViewById(R.id.my_image);