Hallo,
Ich würde gerne durch einen Klick auf einen Button der Action Bar ein Popup erscheinen lassen. Dabei möchte ich gerne mehrere Klassen verwenden.
In meiner main Klasse wird der Konstruktor der Popup Klasse aufgerufen, wenn der Button gedrückt wurde:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
switch(id){
case R.id.add_button:
PopUpAddButton popup = new PopUpAddButton();
break;
}
return true;
}
Alles anzeigen
Jedoch ist mir unklar, wie ich in der PopUp Klasse weitermachen soll. Mein Ansatz war folgender, dass ich aus dem Konstruktor eine andere Funktion aufrufe, welche mit einem AlertDialog.Builder das Popup zusammenschustert. Jedoch stürzt die App ab, wenn ich dies mit dem folgenden Code ausführe:
public class PopUpAddButton extends DialogFragment {
public Dialog onCreateDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.popUp)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id){
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id){
}
});
return builder.create();
}
public PopUpAddButton() {
onCreateDialog();
}
}
Alles anzeigen
Zum Einen ist mir nicht klar, was es mit dem Bundle auf sich hat (ein Beispiel von d.android.com hatte ein Bundle als Parameter in der onCreateDialog() Methode und wie ich das übergeben kann. Zum Anderen ist mir auch unklar, welchen Funktionsnamen in der menu.xml Datei bei
angeben soll.
Wäre toll, wenn ihr mir helfen könntet.