如何重用 android 警报对话框
how to reuse android alertdialog
我想重用 alertDialog 的代码并将其作为函数调用放在另一个 java 文件中。但是 "this" 不能用来代替 "MyActivity.this" 吗?如何将它作为参数传递?如果代码是通用的最好。
AlertDialog alertDialog = new AlertDialog.Builder(MyActivity.this).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("Alert message to be shown");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
你可以在单独的 class 中使用类似的东西,例如我已经使用 AlertUtils.java
:
public class AlertUtils
{
public static void showOKDialog(Context context, String title, String message)
{
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok, null);
builder.show();
}
}
在这个方法中,你通过的Context
可能是你的Activity的这个,例如:MyActivity.this
或者片段的getContext()
AlertUtils.showOKDialog(MyActivity.this, "title of dialog", "message to display in dialog");
public class Utils {
public void showDialog(Context context) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("Alert message to be shown");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
}
在您的 Activity
中,您可以通过
重新使用显示对话框
new Utils().showDialog(MyActivity.this);
您可以在 class 中单独编写您的警报对话框代码,如下所示:
public class Utils{
public static void showMessage(final Activity activity, String title, String posText){
MaterialDialog dialog = new MaterialDialog.Builder(activity)
.content(title)
.positiveText(posText)
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
}
})
.build();
dialog.show();
}
}
从您的 activity / 片段中,您可以称其为:
Activity,
AppUtils.showMessage(this, getString("your text"), getString("your text"));
片段,
AppUtils.showMessage(getActivity(),getString("your text"), getString("your text"));
在两个片段或 activity 中导入 Utils class 然后一切都会完美地工作。
希望这可以帮助您摆脱问题。
我想重用 alertDialog 的代码并将其作为函数调用放在另一个 java 文件中。但是 "this" 不能用来代替 "MyActivity.this" 吗?如何将它作为参数传递?如果代码是通用的最好。
AlertDialog alertDialog = new AlertDialog.Builder(MyActivity.this).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("Alert message to be shown");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
你可以在单独的 class 中使用类似的东西,例如我已经使用 AlertUtils.java
:
public class AlertUtils
{
public static void showOKDialog(Context context, String title, String message)
{
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok, null);
builder.show();
}
}
在这个方法中,你通过的Context
可能是你的Activity的这个,例如:MyActivity.this
或者片段的getContext()
AlertUtils.showOKDialog(MyActivity.this, "title of dialog", "message to display in dialog");
public class Utils {
public void showDialog(Context context) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("Alert message to be shown");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
}
}
在您的 Activity
中,您可以通过
new Utils().showDialog(MyActivity.this);
您可以在 class 中单独编写您的警报对话框代码,如下所示:
public class Utils{
public static void showMessage(final Activity activity, String title, String posText){
MaterialDialog dialog = new MaterialDialog.Builder(activity)
.content(title)
.positiveText(posText)
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
}
})
.build();
dialog.show();
}
}
从您的 activity / 片段中,您可以称其为:
Activity,
AppUtils.showMessage(this, getString("your text"), getString("your text"));
片段,
AppUtils.showMessage(getActivity(),getString("your text"), getString("your text"));
在两个片段或 activity 中导入 Utils class 然后一切都会完美地工作。
希望这可以帮助您摆脱问题。