Подтвердить что ты не робот

Android - Как получить представление из контекста?

Я хочу получить представление или findViewById() из контекста? Или от намерения?

Я пытаюсь получить конкретное представление в своем широковещательном приемнике, а параметр onReceive - это контекст и намерение.

Ну, у меня есть класс, и внутри него мой радиоприемник. Теперь я пытаюсь отделить широковещательный приемник от него, но мне нужен способ, чтобы я мог общаться с представлениями моего класса из моего выделенного класса вещательного приемника.

Спасибо.

4b9b3361

Ответ 1

Начиная с контекста, корневой вид связанного действия может выполняться

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);

Ответ 2

Например, вы можете найти любой текст:

TextView textView = (TextView) ((Activity) context).findViewById(R.id.textView1);

Ответ 3

В вашем широковещательном приемнике вы можете получить доступ к представлению через инфляцию корневого макета из XML-ресурса, а затем найти все свои представления из этого корневого макета с помощью findViewByid():

View view = View.inflate(context, R.layout.ROOT_LAYOUT, null);

Теперь вы можете получить доступ к своим представлениям через "вид" и применить их к виду вида:

myImage = (ImageView) view.findViewById(R.id.my_image);

Ответ 4

сначала используйте это:

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);

Ответ 5

Почему бы вам просто не использовать синглтон?

import android.content.Context;


public class ClassicSingleton {
    private Context c=null;
    private static ClassicSingleton instance = null;
    protected ClassicSingleton()
    {
       // Exists only to defeat instantiation.
    }
    public void setContext(Context ctx)
    {
    c=ctx;
    }
    public Context getContext()
    {
       return c;
    }
    public static ClassicSingleton getInstance()
    {
        if(instance == null) {
            instance = new ClassicSingleton();
        }
        return instance;
    }
}

Затем в классе активности:

 private ClassicSingleton cs = ClassicSingleton.getInstance();

И в классе non activity:

ClassicSingleton cs= ClassicSingleton.getInstance();
        Context c=cs.getContext();
        ImageView imageView = (ImageView) ((Activity)c).findViewById(R.id.imageView1);