我在C#中测试了我的第一个应用程序。我的axml文件中有4个字段:2个字段,您可以输入两个数字,1个按钮和一个字段,该字段应该输出用户在单击按钮时输入的两个数字的相加。并且应用程序可以工作,但是当我点击我的按钮时,我总是得到0作为输出。所以问题可能是,我从EditText
错误读取变量,也许?应该使用工具箱中的其他字段吗?我在Visual Studio中写作!这是我的代码:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView (Resource.Layout.Main);
EditText zahl1 = FindViewById<EditText>(Resource.Id.zahl1);
EditText zahl2 = FindViewById<EditText>(Resource.Id.zahl2);
Button buttonErgebnis = FindViewById<Button>(Resource.Id.buttonErgebnis);
TextView Ergebnis1 = FindViewById<TextView>(Resource.Id.emptyText);
//convert string to int and save in variable
string a = zahl1.ToString();
int Zahl1 = 99;
int.TryParse(a, out Zahl1);
string b = zahl2.ToString();
int Zahl2 = 99;
int.TryParse(a, out Zahl2);
// add two numbers
int ergebnis = Zahl1 + Zahl2;
//output result if button is clicked
buttonErgebnis.Click += (sender, e) =>
{
Ergebnis1.Text = ergebnis.ToString();
};
}
你能看到问题吗?我认为它与我的程序有关,而不是从用户那里读取前两个数字......
抬头:我让它使用这段代码:
using Android.App;
using Android.Widget;
using Android.OS;
namespace OverWriteGPS
[Activity(Label = "OverWriteGPS", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
EditText zahl1 = FindViewById<EditText>(Resource.Id.zahl1);
EditText zahl2 = FindViewById<EditText>(Resource.Id.zahl2);
Button buttonErgebnis = FindViewById<Button>(Resource.Id.buttonErgebnis);
TextView Ergebnis1 = FindViewById<TextView>(Resource.Id.emptyText);
//output result if button is clicked
buttonErgebnis.Click += (sender, e) =>
{
//convert string to int and save in variable
string a = zahl1.Text;
string b = zahl2.Text;
int Zahl1, Zahl2, ergebnis;
if ((int.TryParse(a, out Zahl1)) && (int.TryParse(b, out Zahl2)))
{
ergebnis = Zahl1 + Zahl2;
} else
{
ergebnis = -1;
}
Ergebnis1.Text = ergebnis.ToString();
};
}
}
}
答案 0 :(得分:1)
点击按钮后,您必须执行总和。
像这里移动添加:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView (Resource.Layout.Main);
EditText zahl1 = FindViewById<EditText>(Resource.Id.zahl1);
EditText zahl2 = FindViewById<EditText>(Resource.Id.zahl2);
Button buttonErgebnis = FindViewById<Button>(Resource.Id.buttonErgebnis);
TextView Ergebnis1 = FindViewById<TextView>(Resource.Id.emptyText);
//output result if button is clicked
buttonErgebnis.Click += (sender, e) =>
{
//convert string to int and save in variable
string a = zahl1.ToString();
int Zahl1 = 99;
int.TryParse(a, out Zahl1);
string b = zahl2.ToString();
int Zahl2 = 99;
int.TryParse(a, out Zahl2);
// add two numbers
int ergebnis = Zahl1 + Zahl2;
Ergebnis1.Text = ergebnis.ToString();
};
}
但是,您没有使用从用户输入中读取的值。出于某种原因,您使用99.您可能想要更改它。
答案 1 :(得分:0)
您需要获取EditText
值,如下所示:
//output result if button is clicked
buttonErgebnis.Click += (sender, e) =>
{
//Need to get values of Zahl1 and Zahl2 here
string str1 = Zahl1 .Text;
string str2 = Zahl1 .Text;
// add two numbers
int ergebnis = str1 + str2 ;
Ergebnis1.Text = ergebnis.ToString();
};