900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android 对话框 重复 如何在Android上重复使用AlertDialog for Yes / No?

android 对话框 重复 如何在Android上重复使用AlertDialog for Yes / No?

时间:2018-07-25 11:12:52

相关推荐

android 对话框 重复 如何在Android上重复使用AlertDialog for Yes / No?

我正在尝试找到重用显示自定义标题的Dialog的方法,然后将Yes / No click发送到已启动Dialog的功能.

我有两个按钮,保存和解除,并且都调用是/否对话,一个显示“你想保存”,另一个显示“关闭更改?”.

我认为我的程序非常“脏”但我想它可以工作,但我的问题是“查看视图”变量,我不知道如何将它从Activity传递给Dialog,所以我可以用它来回忆启动Dialog的功能.

提前致谢,

HerniHdez

我活动的.java(片段)

public void open_HH_Fragment_YesNo(View view,String aux_title,String aux_function)

{

Bundle bundle=new Bundle();

bundle.putString("setMessage",aux_title);

bundle.putString("callingFunction",aux_function);

DialogFragment newFragment = new HH_Fragment_YesNo();

newFragment.setArguments(bundle);

newFragment.show(getSupportFragmentManager(),"HH_Fragment_YesNo");

}

public void SaveChanges(View view,String aux_YesNo)

{

if (aux_YesNo == "")

{

Toast.makeText(this,"Save changes?",Toast.LENGTH_SHORT).show();

open_HH_Fragment_YesNo(view,"SaveChanges");

}

else if (aux_YesNo == "Yes")

{

Toast.makeText(this,"Saving changes",Toast.LENGTH_SHORT).show();

}

else if (aux_YesNo == "No")

{

Toast.makeText(this,"Save Cancelled",Toast.LENGTH_SHORT).show();

}

}

public void DismissChanges(View view,"Dismiss changes?","DismissChanges");

}

else if (aux_YesNo == "Yes")

{

Toast.makeText(this,"Dismiss OK",Toast.LENGTH_SHORT).show();

Close(view);

}

else if (aux_YesNo == "No")

{

Toast.makeText(this,"Dismiss Cancelled",Toast.LENGTH_SHORT).show();

}

}

// The dialog fragment receives a reference to this Activity through the

// Fragment.onAttach() callback,which it uses to call the following methods

// defined by the HH_Fragment_YesNo.YesNoDialogListener interface

@Override

public void onDialogPositiveClick(DialogFragment dialog,View view,String aux_function)

{

// User touched the dialog's positive button

Toast.makeText(this,"User clicked on Yes",Toast.LENGTH_SHORT).show();

if (aux_function == "SaveChanges")

{

SaveChanges(view,"Yes");

}

else if (aux_function == "DismissChanges")

{

DismissChanges(view,"Yes");

}

}

@Override

public void onDialogNegativeClick(DialogFragment dialog,String aux_function)

{

Toast.makeText(this,"User clicked on NO","No");

}

else if (aux_function == "DismissChanges")

{

DismissChanges(view,"No");

}

}

我的对话的.java(完整)

public class HH_Fragment_YesNo extends DialogFragment

{

@Override

public Dialog onCreateDialog(Bundle savedInstanceState)

{

// Use the Builder class for convenient dialog construction

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

String setMessage = getArguments().getString("setMessage");

final String callingFunction = getArguments().getString("callingFuntion");

builder

.setMessage(setMessage) // R.string.dialog_fire_missiles

.setPositiveButton("Sí",new DialogInterface.OnClickListener() // R.string.fire

{

public void onClick(DialogInterface dialog,int id)

{

// Exit without saving

mListener.onDialogPositiveClick(HH_Fragment_YesNo.this,view,callingFunction);

}

})

.setNegativeButton("No",new DialogInterface.OnClickListener() // R.string.cancel

{

public void onClick(DialogInterface dialog,int id)

{

// User cancelled the dialog

mListener.onDialogNegativeClick(HH_Fragment_YesNo.this,callingFunction);

}

});

// Create the AlertDialog object and return it

return builder.create();

}

/* The activity that creates an instance of this dialog fragment must

* implement this interface in order to receive event callbacks.

* Each method passes the DialogFragment in case the host needs to query it. */

public interface YesNoDialogListener

{

public void onDialogPositiveClick(DialogFragment dialog,String aux_Function);

public void onDialogNegativeClick(DialogFragment dialog,String aux_Function);

}

// Use this instance of the interface to deliver action events

YesNoDialogListener mListener;

// Override the Fragment.onAttach() method to instantiate the NoticeDialogListener

@Override

public void onAttach(Activity activity)

{

super.onAttach(activity);

// Verify that the host activity implements the callback interface

try

{

// Instantiate the NoticeDialogListener so we can send events to the host

mListener = (YesNoDialogListener) activity;

}

catch (ClassCastException e)

{

// The activity doesn't implement the interface,throw exception

throw new ClassCastException(activity.toString() + " must implement NoticeDialogListener");

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。