Dies ist die einfachste Version, in der ich meine Frage berechtigt hätte.Können wir onClickListener Funktionalität der Schaltflächen in Layout von onOptionsItemSelected() klicken Sie auf
Problem: Angenommen, zwei Schaltflächen funktionieren gut mit ihrer Funktionalität in einer Aktivität. Was ich will ist, dass, wenn wir auf ein Element von Menüpunkten klicken, wie könnten wir (wenn möglich) es eine der Schaltflächen auf ClickListener integrieren, so dass es die gleiche Funktionalität ausführen würde, wie eine dieser Schaltflächen bereits ausgeführt wird.
Szenario: Nehmen wir an, wir haben zwei Schaltflächen in XML-Dateien implementieren onCLickListener-Schnittstelle. Beim Klicken auf den Menüeintrag wurde der innere Klassenkonstruktor initialisiert, aber es geht nicht weiter, was sinnvoll ist. Kann mir irgendjemand sagen, welche Möglichkeiten es gibt, mit der Logik zu arbeiten, die ich hier einbetten möchte.
cameraButton.setOnClickListener(new MyButtonClickListener(MyConstants.OPEN_CAMERA));
mediaButton.setOnClickListener(new MyButtonClickListener(MyConstants.OPEN_MEDIA));
wo MyButtonClickListener ist eine innere Klasse
private class MyButtonClickListener implements View.OnClickListener {
private int preference;
public MyButtonClickListener(int preference) {
this.preference = preference;
Log.e("Pref in Constructor:", String.valueOf(preference));
}
public MyButtonClickListener() {
}
@Override
public void onClick(View v) {
Log.e("Pref in onClick:", String.valueOf(preference));
startScan(preference);
}
}
und das Verfahren startScan ist:
public void startScan(int preference) {
Log.e("Pref: StartScan Method:", String.valueOf(preference));
Intent intent = new Intent(this, MyActivity.class);
intent.putExtra(MyConstants.OPEN_INTENT_PREFERENCE, preference);
startActivityForResult(intent, REQUEST_CODE);
}
onOptionsItemSelected:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.gallery:
new MyButtonClickListener(MyConstants.OPEN_MEDIA);
//return true;
"startScan" -Methode in 'onOptionsAtemSelected' aufrufen. –
Von was ich von Ihrer Frage verstanden habe, können Sie 'button.callOnClick()' verwenden? Ist das, was du fragst? –
@MalithLakshan Ja, ich wollte die gleiche Aktion ausführen, MediaButton tut. Und es funktionierte durch Aufruf von startScan in onOptionsItemSelected Methode. Vielen Dank – Umair