Android自定义类怎么创建,在Java Android中为自定义对话框创建通用类

小编典典

首先创建一个Base

DialogFragment来保持的实例Activity。因此,当Dialog附加到时Activity,您将知道Activity创建该对话框的Instance

public abstract class BaseDialogFragment extends DialogFragment {

private T mActivityInstance;

public final T getActivityInstance() {

return mActivityInstance;

}

@Override

public void onAttach(Activity activity) {

mActivityInstance = (T) activity;

super.onAttach(activity);

}

@Override

public void onDetach() {

super.onDetach();

mActivityInstance = null;

}

}

然后,创建一个GeneralDialogFragment扩展BaseDialogFragment

public class GeneralDialogFragment extends BaseDialogFragment {

// interface to handle the dialog click back to the Activity

public interface OnDialogFragmentClickListener {

public void onOkClicked(GeneralDialogFragment dialog);

public void onCancelClicked(GeneralDialogFragment dialog);

}

// Create an instance of the Dialog with the input

public static GeneralDialogFragment newInstance(String title, String message) {

GeneralDialogFragment frag = new GeneralDialogFragment();

Bundle args = new Bundle();

args.putString("title", title);

args.putString("msg", message);

frag.setArguments(args);

return frag;

}

// Create a Dialog using default AlertDialog builder , if not inflate custom view in onCreateView

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

return new AlertDialog.Builder(getActivity())

.setTitle(getArguments().getString("title"))

.setMessage(getArguments().getString("message"))

.setCancelable(false)

.setPositiveButton("OK",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

// Positive button clicked

getActivityInstance().onOkClicked(GeneralDialogFragment.this);

}

}

)

.setNegativeButton("Cancel",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

// negative button clicked

getActivityInstance().onCancelClicked(GeneralDialogFragment.this);

}

}

)

.create();

}

}

如果您需要使用自己的自定义布局进行对话框,请在中添加布局onCreateView并删除onCreateDialog。但是添加点击侦听器,onCreateView就像我在onCreateDialog

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.activity_dialog, container, false);

return view;

}

然后,在您Activity需要实施一个interface处理操作中dialog

public class TryMeActivity extends

FragmentActivity implements GeneralDialogFragment.OnDialogFragmentClickListener {

@Override

public void onOkClicked(GeneralDialogFragment dialog) {

// do your stuff

}

@Override

public void onCancelClicked(GeneralDialogFragment dialog) {

// do your stuff

}

}

最后,显示Dialog从你Activity需要的时候,这样的

GeneralDialogFragment generalDialogFragment =

GeneralDialogFragment.newInstance("title", "message");

generalDialogFragment.show(getSupportFragmentManager(),"dialog");

希望这可以帮助。我确信这种方法是最优化的方法之一,但是也可能有不同的方法。

2020-10-07

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值