c# - 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);
}
}
}
有人可以告诉我我的代码有什么问题吗?提前致谢!
解决方案
当布局文件(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>
推荐阅读
- php - 如何根据php中列的最大值从数组对象中获取数组对象
- sql-server - 在 SQL Server 中进行正向还原是否安全?
- javascript - Flutter - 在 null 上调用了“then”方法
- windows - SourceTree 在版本更新后不会自动刷新
- google-apps-script - 使用 onEdit 添加复选框,作为新行添加到电子表格 - 应用程序脚本
- python - 如何为包含单个打开/关闭状态的数据框创建堆积条形图?
- haskell - 当我尝试编译 Haskell 文件时,error:parse error on input '#'
- java - 使用 Java 发送 .ics 时无法加载事件数据 - 在 gmail 中
- android - 受限的谷歌 API 密钥无法访问 Youtube 数据
- pandas - 条形图未组合在一起