Ich habe ein Dialogfragment und seine Ansicht besteht aus einer einfachen Suchleiste und positiven und negativen Schaltflächen. Wenn ich den Dialogfragmentonclick ablehne, wird ein neues Dialogfragment erstellt und angezeigt. Nach dem zweiten Klick auf die Schaltfläche wird der Dialog geschlossen, aber mein Wunsch wird nach dem ersten Klick abgewiesen. Auch sollte ich beachten, dass meine Aktivität zwei Fragmente hostet und ich dialog.show() vom ersten Fragment anrufe.DialogFragment abbrechen onClick funktioniert nicht richtig
MyListFragment.java
FragmentManager manager = getFragmentManager();
fndSrchFragment dialog = new fndSrchFragment();
dialog.setTargetFragment(MyListFragment.this, REQUEST_COLOR);
dialog.show(manager, SRCH_FND);
fndSrchFragment.java
public class fndSrchFragment extends DialogFragment {
.
.
//variable definition
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.color_picker, null);
rSb=(SeekBar) view.findViewById(R.id.r_seek_bar);
.
.
//code for interacting with seekbar
.
.
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(view);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int ccolor = android.graphics.Color.rgb(rComponent, gComponent, bComponent);
sendResult(Activity.RESULT_OK, ccolor);
// two click is needed for dismiss which I don't know why?
dismiss();
}
});
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// two click is needed for dismiss which I don't know why?
dismiss();
}
});
return builder.create();
}
Vielen Dank im Voraus.
Ich habe auch manchmal Probleme damit, weiß nicht warum ... was passiert, wenn Sie dialog.dismiss() verwenden; ? – Opiatefuchs
Danke @Opiatefuchs. Es hat keine Wirkung (mit dialog.dismiss()). –
'return builder.create()' ... erstellen Sie den Dialog innerhalb einer Methode? Sie haben das nicht gepostet ... – Opiatefuchs