6つのボタンを持つダイアログフラグメントがあります。ユーザーがボタンをクリックすると、カラーピッカーが開きます。次に、カラーデータが最初のダイアログフラグメントと個々の色に渡されますボタンに設定されています。 Dialog Fragment 1。 問題は、インターフェイスメソッドを宣言すると、フラグメントまたはアクティビティでデータを取得できますが、ダイアログフラグメント1にデータを取得できませんでした。 ダイアログフラグメント2からダイアログフラグメント1にデータを渡す方法?ネストされたダイアログのデータを渡す方法
touchedRGBカラーを最初のダイアログフラグメントに渡したいとします。
カラーモデルでgetterとsetterを使用してデータを送信することはできますか?はい、どうすればいいですか?
builder.setView(layout)
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
ColorDialog.this.getDialog().cancel();
mListener.onDialogNegativeClick(ColorDialog.this);//calling the listener
}
})
.setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
ColorModel colormodel = new ColorModel();
colormodel.setColorData(ColorData);
mListener.onDialogPositiveClick(ColorDialog.this);
mListener.receiveColorData(touchedRGB); //calling the listener
}
});
return builder.create();
}
ダイアログフラグメント1
public class addMain extends DialogFragment implements View.OnClickListener,ColorDialog.ColorDialogListener {
Button color1,color2,color3,color4,color5,color6,canceladd,okadd;
SeekBar seek = null;
public int touchedRGB = 000000;
Integer[] coloranimchange={0,0,0,0,0,0},customvisibility={0,0,0,0,0,0};
Button scenes;
EditText custtomname;
String theme;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.ColoePickerDialogStyle);
LayoutInflater inflater = getActivity().getLayoutInflater();
View layout = inflater.inflate(R.layout.dialogadd, null);
color1 = (Button) layout.findViewById(R.id.addcolor1);
color2 = (Button) layout.findViewById(R.id.addcolor2);
color3 = (Button) layout.findViewById(R.id.addcolor3);
color4 = (Button) layout.findViewById(R.id.addcolor4);
color5 = (Button) layout.findViewById(R.id.addcolor5);
color6 = (Button) layout.findViewById(R.id.addcolor6);
custtomname = (EditText) layout.findViewById(R.id.themename);
color1.setOnClickListener(this);
color2.setOnClickListener(this);
color3.setOnClickListener(this);
color4.setOnClickListener(this);
color5.setOnClickListener(this);
color6.setOnClickListener(this);
builder.setView(layout)
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
addMain.this.getDialog().cancel();
}
})
.setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
});
return builder.create();
}
public static String[] getArray(String input) {
return input.split("\\|\\$\\|SEPARATOR\\|\\$\\|");
}
@Override
public void onClick(View view) {
ColorDialog dialogFragment = new ColorDialog();
dialogFragment.show(getChildFragmentManager(), "ColorSelect");
}
@Override
public void onDialogPositiveClick(DialogFragment dialog) {
}
@Override
public void onDialogNegativeClick(DialogFragment dialog) {
}
@Override
public void receiveColorData(int ColorData) {
String col = String.valueOf(ColorData);
Log.v("col",col);
}
}
事前にありがとうございます。
シェア全体の入れ子になったクラス下さい – ImAtWar
は、あなたはそれが –
HTTPSをどのように見えるか、あなたのUIの画像を投稿することができます。 google.com/file/d/0Bx4pIec6rk6BZGdySEI2ejlRTmVzVmlfQ0s1ZzVyWVJBMlFZ/view –