Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Xamarin Android:Resource.designer Id与Android组件Id不匹配_Xamarin_Xamarin.android - Fatal编程技术网

Xamarin Android:Resource.designer Id与Android组件Id不匹配

Xamarin Android:Resource.designer Id与Android组件Id不匹配,xamarin,xamarin.android,Xamarin,Xamarin.android,我试图在SearchView小部件中找到一个ImageView,ImageView的Id名称是search\u close\u btn。我用这行代码查找它,但是它返回null closeButton=searchView.findviewbyd(Resource.Id.search\u close\u btn) 我调查了search视图的子项,找到了ImageView,发现子项的Id与设计器中的Id不匹配 我很好奇正确的Id存储在哪里,因为我必须手动搜索视图才能找到它。 java的R.Id是否等

我试图在SearchView小部件中找到一个ImageView,ImageView的Id名称是search\u close\u btn。我用这行代码查找它,但是它返回null

closeButton=searchView.findviewbyd(Resource.Id.search\u close\u btn)

我调查了search视图的子项,找到了ImageView,发现子项的Id与设计器中的Id不匹配

我很好奇正确的Id存储在哪里,因为我必须手动搜索视图才能找到它。
java的R.Id是否等同于Xamarin的Resource.Id

一旦有了对SearchView的引用,请尝试以下操作:

 int searchPlateId = searchView.Context.Resources.GetIdentifier("android:id/search_plate", null, null);
 View searchPlate = searchView.FindViewById(searchPlateId); 
 if (searchPlate != null)
 {
      int imgViewId = searchPlate.Context.Resources.GetIdentifier("android:id/search_close_btn", null, null);
      ImageView imgView = (ImageView)searchPlate.FindViewById(imgViewId);
      if (imgView != null)
    {
           Console.WriteLine("Found you image view: {0}", imgView);
    }
}

谢谢,这太完美了。因为我只需要搜索\u close\u btn,所以我简化了它
var closeBtnId=searchView.Context.Resources.GetIdentifier(“android:id/search\u close\u btn”,null,null);closeButton=searchView.FindViewById(closeBtnId)