花了这么多时间找到这么简单的东西,最后我必须去这里,需要有人帮助我。
如何从Xamarin的EditText中获取值,因为它始终返回null。
这是我的代码:
Button loginBtn;
EditText username;
EditText password;
string user;
string pass;
protected override void OnCreate(Bundle savedInstanceState)
{
RequestWindowFeature(Android.Views.WindowFeatures.NoTitle);
base.OnCreate(savedInstanceState);
// Create your application here
SetContentView(Resource.Layout.LoginForm);
loginBtn = FindViewById<Button>(Resource.Id.login);
username = (EditText)FindViewById(Resource.Id.userName);
password = (EditText)FindViewById(Resource.Id.password);
user = username.Text.ToString();
pass = password.Text.ToString();
loginBtn.Click += (object sender, EventArgs e) =>
{
Toast.MakeText(this, user + " : " + pass, ToastLength.Long).Show();
};
}
答案 0 :(得分:1)
你必须在按钮点击事件中移动你的代码,因为你的editexts是OnCreate
方法,它们的值为null,因为OnCreate
是第一个被调用的方法(除非你给它们一些值在xml代码中)你永远不会再次调用你的editexts来实际为他们分配用户输入值。所以我认为这将解决您的问题:
loginBtn.Click += (object sender, EventArgs e) =>
{
user = username.Text.ToString();
pass = password.Text.ToString();
Toast.MakeText(this, user + " : " + pass, ToastLength.Long).Show();
};