Ok, in meiner App habe ich ein Feld, in das der Benutzer eine Nummer eingeben kann. Ich habe das Feld so eingestellt, dass nur Zahlen akzeptiert werden. Wenn der Benutzer auf das Feld klickt, wird die Tastatur aufgerufen. Auf der Tastatur (auf ICS) befindet sich eine Schaltfläche "Fertig". Ich möchte, dass die Schaltfläche "Fertig" auf der Tastatur die Schaltfläche "Senden" auslöst, die ich in meiner Anwendung habe. Mein Code lautet wie folgt.
package com.michaelpeerman.probability;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Random;
public class ProbabilityActivity extends Activity implements OnClickListener {
private Button submit;
ProgressDialog dialog;
int increment;
Thread background;
int heads = 0;
int tails = 0;
public void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
setContentView(R.layout.main);
submit = ((Button) findViewById(R.id.submit));
submit.setOnClickListener(this);
}
public void onClick(View view) {
increment = 1;
dialog = new ProgressDialog(this);
dialog.setCancelable(true);
dialog.setMessage("Flipping Coin...");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(0);
EditText max = (EditText) findViewById(R.id.number);
int maximum = Integer.parseInt(max.getText().toString());
dialog.setMax(maximum);
dialog.show();
dialog.setOnCancelListener(new OnCancelListener(){
public void onCancel(DialogInterface dialog) {
background.interrupt();
TextView result = (TextView) findViewById(R.id.result);
result.setText("heads : " + heads + "\ntails : " + tails);
}});
background = new Thread(new Runnable() {
public void run() {
heads=0;
tails=0;
for (int j = 0; !Thread.interrupted() && j < dialog.getMax(); j++) {
int i = 1 + new Random().nextInt(2);
if (i == 1)
heads++;
if (i == 2)
tails++;
progressHandler.sendMessage(progressHandler.obtainMessage());
}
}
});
background.start();
}
Handler progressHandler = new Handler() {
public void handleMessage(Message msg) {
dialog.incrementProgressBy(increment);
if (dialog.getProgress() == dialog.getMax()) {
dialog.dismiss();
TextView result = (TextView) findViewById(R.id.result);
result.setText("heads : " + heads + "\ntails : " + tails);
}
}
};
}
android
keyboard-events
android-softkeyboard
mpeerman
quelle
quelle
Antworten:
Sie können diesen auch verwenden (legt einen speziellen Listener fest, der aufgerufen wird, wenn eine Aktion im EditText ausgeführt wird). Er funktioniert sowohl für DONE als auch für RETURN:
quelle
Sie können mit versuchen
IME_ACTION_DONE
.quelle
Versuche dies:
quelle
Versuchen Sie dies für Xamarin.Android (Cross Platform)
quelle
Kotlin-Lösung
Die grundlegende Methode, um die in Kotlin durchgeführten Aktionen auszuführen, ist:
Kotlin-Erweiterung
Verwenden Sie diese Option, um
edittext.onDone {/*action*/}
Ihren Hauptcode aufzurufen . Hält es lesbarer und wartbarerVergessen Sie nicht, diese Optionen Ihrem Edittext hinzuzufügen
quelle
Ich habe den folgenden Code von AndroidStudio kopiert, als Sie eine LoginActivity erstellt haben. Ich benutze die IME-Attribute
In Ihrem Layout
In Ihrer Aktivität
quelle
Sie können auf Key Listener implementieren:
In onCreate:
...
quelle
Wenn Sie die Tastatureingabetaste für Ihre Arbeit abrufen möchten, die Sie durch ein Ereignis wie das Klicken auf eine Schaltfläche ausführen möchten, können Sie den folgenden einfachen Code für diese Textansicht schreiben
quelle
Kotlin und Zifferntastatur
Wenn Sie die numerische Tastatur verwenden, müssen Sie die Tastatur schließen.
quelle
Verwenden Sie diese Klasse in Ihrem Layout:
}}
In XML:
quelle
Ihr letzter Edittext .setOnEditorActionListener ruft diese Methode automatisch auf
Ich war Call in LoginActivity in et_password
Funktioniert gut
quelle
Und das ist eine Kotlin-Version:
quelle