【问题标题】:Resource.Id does not contain a definition for listResource.Id 不包含列表的定义
【发布时间】:2018-09-10 02:32:22
【问题描述】:

我是 Xamarin/Android 的新手。我正在开发一个 Xamarin Android 应用程序,并且我有以下 .axml 文件。

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

  <ListView
       android:minWidth="25px"
       android:minHeight="25px"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@android:id/list" >    
  </ListView>
</LinearLayout>

在我正在编写的 Activity 类中,我尝试使用以下代码获取对此 ListView 的引用:

FindViewById<ListView>(Resource.Id.list);

Visual Studio 引发编译错误“Resource.Id 不包含列表的定义”。但是,如果我使用

android:id="@+id/list"

作为 ListView 的 Id,编译错误消失了,但我得到另一个错误“您的内容必须有一个 id 属性为 'android.R.id.list' 的 ListView” SetContentView 在 Activity 类的 OnCreate 中调用。

【问题讨论】:

    标签: android xamarin xamarin.forms xamarin.android


    【解决方案1】:

    Resource.Id 不包含列表的定义

    你需要在你之前写的.axml文件中定义它:

    android:id="@+id/list"
    

    在 Activity 类的 OnCreate 中调用 SetContentView 时,您的内容必须有一个 id 属性为“android.R.id.list”的 ListView。

    能否请您检查一下您的Activity 中是否使用了SetContentView

    public class MainActivity : AppCompatActivity
    {
    
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
    
            var listView = FindViewById<ListView>(Resource.Id.list);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多