I started to work with Xamarin Studio a weeks ago, and could not find solution to the next problem: created an edittext which will contains serial numbers. I'd like ro run a function after the Enter was pressed. It's working fine, when I press Enter, the function runs without failure, but I can not modify the content of the edittext (I can't type into it).
The code:
EditText edittext_vonalkod = FindViewById<EditText>(Resource.Id.editText_vonalkod);
edittext_vonalkod.KeyPress += (object sender, View.KeyEventArgs e) =>
{
if ((e.Event.Action == KeyEventActions.Down) && (e.KeyCode == Keycode.Enter))
{
//Here is the function
}
};
This is the code of the control:
<EditText
p1:layout_width="wrap_content"
p1:layout_height="wrap_content"
p1:layout_below="@+id/editText_dolgozo_neve"
p1:id="@+id/editText_vonalkod"
p1:layout_alignLeft="@+id/editText_dolgozo_neve"
p1:hint="Vonalkód"
p1:text="1032080293"
p1:layout_toLeftOf="@+id/editText_allapot" />
I tried to use edittext_vonalkod.TextCanged
with its arguments, the problem reserved. I can modify the content but can not handle Enter key.
Thanks!
The best approach would be to use the EditorAction
event that is designed to be triggered on the Enter key press. It would be a code like this:
edittext_vonalkod.EditorAction += (sender, e) => {
if (e.ActionId == ImeAction.Done)
{
btnLogin.PerformClick();
}
else
{
e.Handled = false;
}
};
And to be able to change the text of the Enter button use imeOptions
on your XML:
<EditText
p1:layout_width="wrap_content"
p1:layout_height="wrap_content"
p1:layout_below="@+id/editText_dolgozo_neve"
p1:id="@+id/editText_vonalkod"
p1:layout_alignLeft="@+id/editText_dolgozo_neve"
p1:hint="Vonalkód"
p1:text="1032080293"
p1:layout_toLeftOf="@+id/editText_allapot"
p1:imeOptions="actionSend" />
You need to mark the event as not being handled when the pressed key is ENTER. Place the following code inside your KeyPress handler.
if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
{
// Code executed when the enter key is pressed down
}
else
{
e.Handled = false;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With