Inviare un form da EditText in Android

Mattepuffo's logo
Inviare un form da EditText in Android

Inviare un form da EditText in Android

In pratica quando siamo sull'ultima EditText del nostro "form", vogliamo eseguire la stessa operazione che fa il button.

In Android è possibile farlo usando l'attributo imeOptions.

Quindi, partendo dal layout:

<EditText
	android:id="@+id/editTextRfid"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:layout_gravity="center_horizontal"
	android:layout_marginTop="10dp"
	android:backgroundTint="#ffffff"
	android:ems="10"
	android:imeOptions="actionDone"
	android:singleLine="true"
	android:text="000000099"
	android:textColorLink="#14477C" />

<Button
	android:id="@+id/buttonVerifica"
	android:layout_width="200dp"
	android:layout_height="wrap_content"
	android:layout_gravity="center_horizontal"
	android:layout_marginTop="30dp"
	android:background="@drawable/button_radious_orange"
	android:onClick="doLogin"
	android:paddingTop="10dp"
	android:paddingBottom="10dp"
	android:text="Verifica"
	android:textColor="#FFFFFF"
	android:textStyle="bold" />

Abbiamo un Button su richiama un metodo nell'onClick.

Poi nell'Activity:

private EditText rfid;
private Button btnLogin;
	
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.login);

	rfid = findViewById(R.id.editTextRfid);
	btnLogin = findViewById(R.id.buttonVerifica);

	rfid.setOnEditorActionListener(new EditText.OnEditorActionListener() {

		@Override
		public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
			if (actionId == EditorInfo.IME_ACTION_DONE) {
				btnLogin.performClick();
				return true;
			}
			return false;
		}
	});
}

public void doLogin(View view) {
	// DO STUFF
}

In pratica gli abbiamo detto che l'azione che deve essere eseguita quando si fa invio è la stessa del bottone.

Enjoy!


Condividi

Commentami!