我有一个非常简单的Xamarin Android应用程序。它有一个文本框和一个按钮。这是Resources.Layout中的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">
<TextView
android:text="0"
android:textSize="50sp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtNumber"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp" />
<Button
android:text="Get Number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnAutoGenerate" />
在解决方案资源管理器中,我拥有资产和资源。
在资源下是布局,在布局下是activity_main.axml
一点也不复杂。
在MainActivity.cs中,OnCreate过程是这样的:
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
TextView txtNumber;
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
txtkNumber = FindViewById<TextView>(Resource.Id.txtNumber);
FindViewById<Button>(Resource.Id.btnAutoGenerate).Click += (o, e) =>
txtNumber.Text = btnAutoGenerate_Click(o, e);
}
我不确定在哪里定义Resource(在xml中是Resources),但是即使最初编译时没有问题,我仍然收到错误:名称“ Resource”在当前上下文中不存在。 / p>
因为是第一次生成默认文件,所以它是
SetContentView(Resource.Layout.activity_main);
即使“ Resource.Layout”指向Resources.layout。不知道为什么。