私はダイアログフラグメントを持っており、そのビューはシンプルなシークバーと肯定と否定のボタンで構成されています。 dialogfragment onclickを閉じると、新しいダイアログフラグメントが作成されて表示されます。 2回目のボタンをクリックすると、ダイアログは閉じられますが、最初のクリック後に私の欲求が消えてしまいます。また、私のアクティビティは2つのフラグメントをホストし、最初のフラグメントからdialog.show()を呼び出します。DialogFragment onClickが正常に動作しない
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();
}
事前にありがとうございます。
私はまた時々この問題を抱えていました。理由はわかりません....あなたがdialog.dismiss()を使うとどうなりますか? ? – Opiatefuchs
@Opiatefuchsありがとうございました。これは何の効果もありません(dialog.dismiss()を使用)。 –
'return builder.create()' ...メソッド内にダイアログを作成していますか?投稿していません... – Opiatefuchs