机器人 - 如何从上下文看法?(android - How to get view from con

2019-07-03 10:39发布

我想从上下文的观点或findViewById()? 或意图是什么?

我想在我的广播接收器到达特定视图的onReceive的参数是上下文和意图。

嗯,我有一个类,并在它是我的广播接收器。 现在,我想给广播接收机从中分离出来,但我需要一种方法,所以我仍然可以从我分开广播接收器类上我的课的意见沟通。

谢谢。

Answer 1:

例如,你可以找到任何的TextView:

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


Answer 2:

与上下文开始,相关联的活动的根视图可以通过有

View rootView = ((Activity)_context).Window.DecorView.FindViewById(Android.Resource.Id.Content);

在原始的Android它会是这个样子:

View rootView = ((Activity)mContext).getWindow().getDecorView().findViewById(android.R.id.content)

然后,只需调用findViewById在这

View v = rootView.findViewById(R.id.your_view_id);


Answer 3:

在你的广播接收器,你可以通过通货膨胀从XML资源访问视图根布局,然后找到这个根布局findViewByid()所有的意见吧:

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

现在,您可以通过“查看”访问你的观点,并将它们投射到您的视图类型:

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


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


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

而在非活动类:

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


文章来源: android - How to get view from context?