2016-02-18 72 views
0

我让用户将他们的身高和体重输入EditText,然后计算他们的BMI。我试图将EditText转换为int,这样我就可以进行计算。将EditText转换为Int

EditText userHeight = FindViewById<EditText>(Resource.Id.editTextHeight); 
EditText userWeight = FindViewById<EditText>(Resource.Id.editTextWeight); 


int intuserweight = Convert.ToInt32(userWeight.Text); 
intuserweight = int.Parse(userWeight.Text); 

int intuserheight = Int32.Parse(userHeight.Text); 

我已经尝试了两种转换,并且都是System.FormatException: Input string was not in a correct format

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using Android.App; 
using Android.Content; 
using Android.OS; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 

namespace AndroidDoctorApp 
{ 
[Activity(Label = "Enter Intake")] 
public class EnterIntake : Activity 
{ 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

     // Create your application here 

     SetContentView(Resource.Layout.EnterIntake); 



     EditText userDate = FindViewById<EditText>(Resource.Id.editTextDate); 
     EditText userTime = FindViewById<EditText>(Resource.Id.editTextTime); 
     EditText userHeight = FindViewById<EditText>(Resource.Id.editTextHeight); 
     EditText userWeight = FindViewById<EditText>(Resource.Id.editTextWeight); 

     Button btnBMI = FindViewById<Button>(Resource.Id.btnCalcBMI); 
     Button btnAddHistory = FindViewById<Button>(Resource.Id.buttonAddHistory); 
     Button btnViewHistory = FindViewById<Button>(Resource.Id.buttonViewHistory); 




     int bmi; 
     int intuserweight = int.Parse(userWeight.Text.ToString()); 
     // intuserweight = int.Parse(userWeight.Text); 


     int intuserheight = Int32.Parse(userHeight.Text); 

     bmi = intuserweight/(intuserheight * intuserheight); 


     btnBMI.Click += (object sender, EventArgs e) => 
     { 

      string toast = string.Format("Your BMI is: ", bmi); 
      Toast.MakeText(this, toast, ToastLength.Long).Show(); 


     }; 



     btnAddHistory.Click += (object sender, EventArgs e) => 
     { 

      string toast = string.Format("BMI Added to History "); 
      Toast.MakeText(this, toast, ToastLength.Long).Show(); 

     }; 


    } 
} 

}

+0

您可能首先要检查的是如何'userWeight.Text'样子 – Ian

回答

2

使用此:

的输入进级

编辑的完整代码

int userweight = int.Parse(userWeight.getText().toString()); 

编辑 INT BMI; int intuserweight; int intuserheight;

btnBMI.Click += (object sender, EventArgs e) => 
    { 
     intuserweight = int.Parse(userWeight.Text.ToString()); 
     intuserheight = int.Parse(userHeight.Text.ToString()); 

    bmi = intuserweight/(intuserheight * intuserheight); 
     string toast = string.Format("Your BMI is: ", bmi); 
     Toast.MakeText(this, toast, ToastLength.Long).Show(); 
    }; 

试试这个。对不起,任何语法错误(如果有的话),因为我是一个Java人,在C#中不多。不要忘记告诉它是否有效。

+0

@Wahm这样做解决问题了吗? – Shuddh

+0

是我已经试过了,但getText没有出现 'Android.Widget.EditText'没有包含'getText'的定义,也没有扩展方法'getText'接受类型为'Android.Widget.EditText'的第一个参数被发现(你是否缺少使用指令或程序集引用?) – Wahm

+0

然后使用.Text.toString() – Shuddh

0

你尝试像

int user_Weight=Integer.parseInt(userheight.gettext().toString());