SetContentView(Resource.Layout.V2T) CS0117 错误“Resource.Layout”不包含“V2T”的定义

Posted

技术标签:

【中文标题】SetContentView(Resource.Layout.V2T) CS0117 错误“Resource.Layout”不包含“V2T”的定义【英文标题】:SetContentView(Resource.Layout.V2T) CS0117 Error 'Resource.Layout' does not contain a definition for 'V2T' 【发布时间】:2018-09-29 10:44:32 【问题描述】:

使用 Visual Studio 开发 Xamarin 跨平台 APP。我已将特定的 android 代码添加到 Android 特定版本中。尝试编译时出现 CS0117 错误。我在 Resources/layout 文件夹中有一个“V2T.axml”文件。 CS代码中出现错误的行是:

SetContentView(Resource.Layout.V2T);

知道有什么问题吗?

另外还有 2 个 CS0117 错误,原因是“Resource.Id”不包含定义错误 - 但我已经定义了这两个资源。

有什么想法吗?

CS:

    protected override void OnCreate(Bundle bundle)
    
        base.OnCreate(bundle);

        // set the isRecording flag to false (not recording)
        isRecording = false;

        // Set our view to: V2T.axml
        SetContentView(Resource.Layout.V2T);

        // get the resources from the layout
        recButton = FindViewById<Button>(Resource.Id.btnRecord);
        textBox = FindViewById<TextView>(Resource.Id.textYourText);

V2T.axml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_
android:weightSum="3">
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_
    android:layout_
    android:id="@+id/linearLayout1"
    android:layout_weight="1"
    android:gravity="center">
    <Button
        android:text="Start Recording"
        android:layout_
        android:layout_
        android:id="@+id/btnRecord" />
</LinearLayout>
<LinearLayout
    android:orientation="vertical"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_
    android:layout_
    android:id="@+id/linearLayout2"
    android:layout_weight="1">
    <TextView
        android:text="Your text"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_
        android:layout_
        android:id="@+id/textView1"
        android:layout_marginLeft="5dp" />
    <TextView
        android:layout_
        android:layout_
        android:id="@+id/textYourText"
        android:textColor="#ffedf01d"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp" />
</LinearLayout>
<LinearLayout
    android:orientation="horizontal"
    android:minWidth="25px"
    android:minHeight="25px"
    android:layout_
    android:layout_
    android:id="@+id/linearLayout3"
    android:layout_weight="1" />
 </LinearLayout>

【问题讨论】:

考虑发布更多代码 这里是代码 sn-p: CS: protected override void OnCreate(Bundle bundle) base.OnCreate(bundle); // 将 isRecording 标志设置为 false(不录制) isRecording = false; // 将我们的视图设置为:V2T.axml SetContentView(Resource.Layout.V2T); // 从布局中获取资源 recButton = FindViewById SetContentView(Resource.Layout.V2T); 这一行有什么问题? 不确定 - 我在一个独立的应用程序中使用了这个确切的代码并且它有效。我错过了什么? 请发布错误 【参考方案1】:

清理解决方案并重建,布局xml没有成功构建应该可以解决它

【讨论】:

编辑 CS 代码时,IntelliSense 编辑器不知道“V2T.axml”资源。如上所述,我从一个独立的 CS 项目中复制了文件,并将它们放入带有 Android、ios 和 Windows 项目的更大的 Xamarin Forms 项目中。我将所有内容都放入了 Android 项目文件中。使用“Resource.Layout.V2T”语句时是否需要指定名称空间或项目文件?该语句如何知道要查看我的“EnSpect.Android”/Resources/layout 文件夹以找到 V2T.axml? IntelliSense 在“资源/布局”中看不到任何文件。我错过了什么?我在该文件夹中也有“Tabbar.axml”和“Toolbar.axml” - 但 IntelliSense 看不到它们。 已修复!我将 CS 文件中的命名空间从“EnSpect”更正为“EnSpect.Droid”。感谢所有帮助过的人!

以上是关于SetContentView(Resource.Layout.V2T) CS0117 错误“Resource.Layout”不包含“V2T”的定义的主要内容,如果未能解决你的问题,请参考以下文章

setContentView加载解析过程源码分析

关于 setContentView 的说明

setContentView和inflate区别:

android setContentView处理流程

setContentView() 与 XML 布局与视图

Andriod——setContentView( )方法