Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从主活动获取视图_C#_Android_Xamarin_Android Activity_View - Fatal编程技术网

C# 如何从主活动获取视图

C# 如何从主活动获取视图,c#,android,xamarin,android-activity,view,C#,Android,Xamarin,Android Activity,View,有一个来自处理程序的类继承器,通过它我可以控制图形按钮。 要搜索此按钮,我向设计器传递一个指向激活的链接。但我想通过那里的风景。如何从活动中获取视图 public class FlActivity : AppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentVi

有一个来自处理程序的类继承器,通过它我可以控制图形按钮。 要搜索此按钮,我向设计器传递一个指向激活的链接。但我想通过那里的风景。如何从活动中获取视图

public class FlActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.activity_fl);

        toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        SetSupportActionBar(toolbar);
        SupportActionBar.SetDisplayHomeAsUpEnabled(true);

        tabLayout = FindViewById<TabLayout>(Resource.Id.tabLayout);
        viewPager = FindViewById<ViewPager>(Resource.Id.viewPager);
        fpAdapter = new FpAdapter(SupportFragmentManager, null);

        uiHandler = new UiHandler(this, MainLooper);

    }
}
public class UiHandler : Handler
{
    private Activity activity { get; }
    public UiHandler(Activity a, Looper loader) : base(loader) 
    {
        activity = a;
    }
    public override void HandleMessage(Message msg)
    {
         activity.FindViewById<ImageButton>(Resource.Id.imageButton1).SetImageResource(msg.Data.GetInt("ID", Resource.Drawable.bt_off));
    }
}
公共类活动:AppCompatActivity
{
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_fl);
toolbar=findviewbyd(Resource.Id.toolbar);
设置支持操作栏(工具栏);
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
tabLayout=findviewbyd(Resource.Id.tabLayout);
viewPager=FindViewById(Resource.Id.viewPager);
fpAdapter=新的fpAdapter(SupportFragmentManager,null);
uiHandler=新的uiHandler(这个,MainLooper);
}
}
公共类UiHandler:Handler
{
私有活动活动{get;}
公共UiHandler(活动a,活套装入器):基本(装入器)
{
活动=a;
}
公共覆盖无效HandleMessage(消息消息消息)
{
activity.findviewbyd(Resource.Id.imageButton1).SetImageResource(msg.Data.GetInt(“Id”,Resource.Drawable.bt_off));
}
}

如果我将
private-Activity-Activity{get;}
更改为
private-View-View{get;}
,那么在创建处理程序实例时如何从主活动转移视图。在创建nadler对象时,如何替换此

this.Window.DecorView.RootView;

尽管如此,由于它可能是一个布局,而不是单个视图,我建议使用
ViewGroup
而不是
view
(这些方法返回
view
,因此如果需要,您必须将它们转换到
ViewGroup

=================


感谢您的帮助。我需要一个视图,因为我想更改这个类中其他视图的处理程序元素,例如对话框。
this.Window.DecorView.FindViewById(Android.Resource.Id.Content);
this.FindViewById(Android.Resource.Id.Content);
this.FindViewById(Android.Resource.Id.Content).RootView;
((ViewGroup) this.FindViewById(Android.Resource.Id.Content)).GetChildAt(0);