S
snatch
Neues Mitglied
- 1
Hallo,
Ich bin gerade dabei ein Context Menü in meiner App einzubauen. Nun möchte ich das Menü über eine Klasse steuern also auch, dass bei einem Select die onContextItemSelected der Klasse aufgerufen wird.
Das stellt sich scheinbar komplizierter dar als ich dachte oder ich mache irgendwas falsch. Zweiteres scheint mir jedenfalls eher der Fall zu sein.
Ich habe gemerkt, dass wenn ich die Funktion onContextItemSelected in meiner Main Klasse überschreibe, dass ganze funktioniert. Das soll aber nicht Sinn der Sache sein.
Auch setOnCreateContextMenuListener(this); schafft keine Abhilfe.
Hier die Klasse:
Würde mich freuen, wenn mir da jemand helfen könnte.
Schon mal vielen Dank und einen angenehmen Dienstag Abend.
Ich bin gerade dabei ein Context Menü in meiner App einzubauen. Nun möchte ich das Menü über eine Klasse steuern also auch, dass bei einem Select die onContextItemSelected der Klasse aufgerufen wird.
Das stellt sich scheinbar komplizierter dar als ich dachte oder ich mache irgendwas falsch. Zweiteres scheint mir jedenfalls eher der Fall zu sein.
Ich habe gemerkt, dass wenn ich die Funktion onContextItemSelected in meiner Main Klasse überschreibe, dass ganze funktioniert. Das soll aber nicht Sinn der Sache sein.
Auch setOnCreateContextMenuListener(this); schafft keine Abhilfe.
Hier die Klasse:
Code:
public class Stack extends Activity {
private Button b;
Stack(Button b) {
this.b = b;
this.registerForContextMenu(this.b);
this.b.setOnCreateContextMenuListener(this);
this.openContextMenu(this.b);
this.unregisterForContextMenu(this.b);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle(R.string.m);
menu.add(0, v.getId(), 0, R.string.m1);
menu.add(0, v.getId(), 0, R.string.m2);
menu.add(0, v.getId(), 0, R.string.m3);
menu.add(0, v.getId(), 0, R.string.m4);
menu.add(0, v.getId(), 0, R.string.m5);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
Log.d("DEBUG_TAG", "menu click");
if (item.getTitle().equals(getString(R.string.m1))) {
Toast.makeText(this, R.string.m1, Toast.LENGTH_SHORT).show();
Log.d("DEBUG_TAG", "abc");
} else if (item.getTitle().equals(getString(R.string.m2))) {
Toast.makeText(this, R.string.m2, Toast.LENGTH_SHORT).show();
} else if (item.getTitle().equals(getString(R.string.m3))) {
Toast.makeText(this, R.string.m3, Toast.LENGTH_SHORT).show();
} else if (item.getTitle().equals(getString(R.string.m4))) {
Toast.makeText(this, R.string.m4, Toast.LENGTH_SHORT).show();
} else if (item.getTitle().equals(getString(R.string.m5))) {
Toast.makeText(this, R.string.m5, Toast.LENGTH_SHORT).show();
} else {
return false;
}
return true;
}
}
Schon mal vielen Dank und einen angenehmen Dienstag Abend.