C# Android点击按钮事件出现异常,如何修复?
当我尝试运行模拟器时,calculateButton上出现异常。单击+=委派,我尝试制作一个提示计算器,以便当用户单击按钮时,应用程序开始计算 例外情况是 System.NullReferenceException已被抛出对象引用未设置为对象的实例 我试了很多东西C# Android点击按钮事件出现异常,如何修复?,c#,android,xamarin,events,button,C#,Android,Xamarin,Events,Button,当我尝试运行模拟器时,calculateButton上出现异常。单击+=委派,我尝试制作一个提示计算器,以便当用户单击按钮时,应用程序开始计算 例外情况是 System.NullReferenceException已被抛出对象引用未设置为对象的实例 我试了很多东西 Button calculateButton; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView
Button calculateButton;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.activity_main);
calculateButton = FindViewById<Button>(Resource.Id.calculateButton);
calculateButton.Click += delegate
{
"insert calculations"
};
}
按钮计算按钮;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.activity_main);
calculateButton=FindViewById(Resource.Id.calculateButton);
计算按钮。单击+=委派
{
“插入计算”
};
}
我也试过了
Button calculateButton;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.activity_main);
calculateButton = FindViewById<Button>(Resource.Id.calculateButton);
calculateButton.Click += OnCalculateClick;
void OnCalculateClick (object sender, EventArgs e)
{
"insert calculations"
};
}
按钮计算按钮;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.activity_main);
calculateButton=FindViewById(Resource.Id.calculateButton);
计算按钮。单击+=OnCalculateClick;
void OnCalculateClick(对象发送方,事件参数e)
{
“插入计算”
};
}
我所期望的是,当我点击按钮时,计算将开始
编辑:
这里是activity_main.axml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/linearLayout1">
</LinearLayout >
<include
layout="@layout/content_main" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
这里是content_main.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">
<EditText
android:imeActionId="@+id/inputBill"
android:layout_width ="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:layout_marginBottom="0.0dp"
android:layout_marginTop="0.0dp" />
<Button
android:imeActionId="@+id/calculateButton"
android:layout_width ="match_parent"
android:layout_height="wrap_content"
android:text ="CALCULATE"
android:id="@+id/button1" />
</LinearLayout>
正确用法如下 在您的活动中:
Button calculateButton;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your application here
SetContentView(Resource.Layout.activity_main);
calculateButton = FindViewById<Button>(Resource.Id.calculateButton);
calculateButton.Click += delegate
{
"insert calculations"
};
}
按钮计算按钮;
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//在此处创建应用程序
SetContentView(Resource.Layout.activity_main);
calculateButton=FindViewById(Resource.Id.calculateButton);
计算按钮。单击+=委派
{
“插入计算”
};
}
然后在对应的axml中(这里是活动\u main):
FindViewById(Resource.Id.calculateButton)
返回null
,活动_main中是否存在calculateButton?@sushingover我在content_main.axml上创建了该按钮,活动_main上唯一相关的代码按钮是android.support.design.widget.FloatingActionButton,我从MainActivity中删除了它,因为教程告诉我要这样做,所以您应该在活动_main
axml中添加一个id定义为calculateButton
的按钮,因为当前活动是从Resource.Layout.activity\u main
膨胀而来,所以该教程可能有问题,或者您做错了什么。要运行此代码,您的布局中必须有calculateButton
按钮,而您没有显示它让我们说它是否有。它现在可以工作吗?我是在content\u main上做的,我不确定如何将它放在activity\u main上,我编辑我的问题以包括活动和内容。您应该使用id按钮1。您应该通过id找到您的控件,该id使用android:id定义
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<Button
android:id="@+id/calculateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calculate"
/>
</RelativeLayout>