首页 > 解决方案 > Resource.Id 不包含“myRecyclerView”的定义 (Resource.Id.XXX)

问题描述

我是 Xamarin 和 firebase 的新手,我的 id myRecyclerView 不能在 cs 中调用。我试图通过资源查找viewbyid,但我似乎无法调用 id。我的代码如下。

这是设计的代码。activity_main.axml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation = vertical>


    <android.support.v7.widget.Toolbar
        android:id = "@+id/toolbar1"
        android:layout_height = "wrap_content"
        android:layout_width = "match_parent"
        android:background = "?android:attr/colorPrimary"
        android:minHeight = "?android:attr/actionBarSize"
        android:theme = "@style/Base.ThemeOverlay.AppCompat.Dark.ActionBar"
        android:elevation = "4dp">

        <RelativeLayout
            android:layout_height = "wrap_content"
            android:layout_width = "match_parent">

            <TextView
             android:layout_centerVertical = "true"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:text = "Employee"
             android:gravity = "center"
             android:textStyle = "bold"
             android:textColor = "#fff"
             android:textSize = "18sp"/>

            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:id = "@id/searchButton"
                android:layout_alignParentLeft = "true"
                android:src = "@drawable/search"
                android:tint = "#fff"
                android:layout_marginLeft = "10dp"/>

            <ImageView
                android:layout_width="30dp"
                android:layout_height="20dp"
                android:id = "@id/addButton"
                android:layout_alignParentRight = "true"
                android:src = "@drawable/add"
                android:tint = "#fff"
                android:layout_marginLeft = "10dp"/>

        </RelativeLayout>

    </android.support.v7.widget.Toolbar>

    <EditText
        android:visibility = "gone"
        android:id = "@id/searchText"
        android:layout_marginLeft = "5dp"
        android:layout_marginRight = "5dp"
        android:layout_marginBottom = "5dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint = "Search"/>


    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars = "vertical"
        android:background = "#e2e2e2"
        android:id = "@+id/myRecyclerView"/>

    </LinearLayout>

这是我在 MainActivity.cs 中的代码

    using Android.App;
    using Android.OS;
    using Android.Support.V7.App;
    using Android.Runtime;
    using Android.Widget;
    using Android.Support.V7.Widget;

    namespace FirebaseSampleApp
    {
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        ImageView addButton;
        ImageView searchButton;
        EditText searchText;
        RecyclerView myRecyclerView;


        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            // Set our view from the "main" layout resource

            SetContentView(Resource.Layout.activity_main);
            myRecyclerView = (RecyclerView)FindViewById(Resource.Id.myRecyclerView);

        }


        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, 
    [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, 
    grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }
    }

有人可以告诉我我的代码有什么问题吗?提前致谢!

标签: c#firebasexamarin

解决方案


当布局文件(activity_main.axml)不正确时,Resource.designer.cs文件(包括生成的各种资源的id,例如视图的id、布局文件等)无法正确生成。

我们可以发现你的有几个问题activity_main.axml

1.改变

android:orientation = vertical

android:orientation = "vertical"

2.当你添加一个 id 到一个控件时,只需添加一个+,就像这样:

 android:id="@+id/searchButton"

不是

android:id = "@id/searchButton"

同时,确保您使用的图像存在于正确的位置(例如drawable文件夹)。(android:src ="@drawable/search"android:src = "@drawable/add"

注意

在我们编码之后,我们可以直接构建应用程序,然后如果我们的代码有问题,将会有一些错误日志。

所以整个布局文件是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation = "vertical">

<android.support.v7.widget.Toolbar
    android:id = "@+id/toolbar1"
    android:layout_height = "wrap_content"
    android:layout_width = "match_parent"
    android:background = "?android:attr/colorPrimary"
    android:minHeight = "?android:attr/actionBarSize"
    android:theme = "@style/Base.ThemeOverlay.AppCompat.Dark.ActionBar"
    android:elevation = "4dp">


    <RelativeLayout
        android:layout_height = "wrap_content"
        android:layout_width = "match_parent">
        <TextView
         android:layout_centerVertical = "true"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text = "Employee"
         android:gravity = "center"
         android:textStyle = "bold"
         android:textColor = "#fff"
         android:textSize = "18sp"/>

        <ImageView
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:id="@+id/searchButton"
            android:layout_alignParentLeft = "true"
            android:src ="@drawable/search"
            android:tint = "#fff"
            android:layout_marginLeft = "10dp"/>

        <ImageView
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:id="@+id/addButton"
            android:layout_alignParentRight = "true"
            android:src = "@drawable/add"
            android:tint = "#fff"
            android:layout_marginLeft = "10dp"/>
    </RelativeLayout>

</android.support.v7.widget.Toolbar>

<EditText
    android:visibility = "gone"
    android:id = "@+id/searchText"
    android:layout_marginLeft = "5dp"
    android:layout_marginRight = "5dp"
    android:layout_marginBottom = "5dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint = "Search"/>

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars = "vertical"
    android:background = "#e2e2e2"
    android:id = "@+id/myRecyclerView"/>
 </LinearLayout>

推荐阅读