猿问

android中自定义方法怎样传递对象参数?

在Android中很多操作后都要调用一个对话框,所以封装了一个方法,大体如下:
protectedvoidalertDialog(ContextmContext,Stringtitle,Stringmessage)
{
//构造对话框
AlertDialog.Builderbuilder=newAlertDialog.Builder(mContext);
builder.setTitle(title);
builder.setMessage(message);
//确定
builder.setPositiveButton(R.string.i_know,newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
dialog.dismiss();
}
});
DialognoticeDialog=builder.create();
noticeDialog.show();
}
一个典型的alert对话框,但有时的可能需求:当用户点击确定按钮后,还需要做点其他的事情,所以我想在参数当中传递一个对象过来,在click后调用其中的方法,我试着写了一个类:
classDialogButton{
Stringbt2="";
publicvoidok(){
}
publicvoidcancel(){}
}
然后把之前的方法改成这样;
protectedvoidalertDialog(ContextmContext,Stringtitle,Stringmessage,finalDialogButtonbutton)
{
//构造对话框
AlertDialog.Builderbuilder=newAlertDialog.Builder(mContext);
builder.setTitle(title);
builder.setMessage(message);
//确定
builder.setPositiveButton(R.string.i_know,newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
button.ok();
dialog.dismiss();
}
});
DialognoticeDialog=builder.create();
noticeDialog.show();
}
后面调用的时候重写DialogButton这里面的方法,因为alertDialog中变成了finalDialogButton,所以传过来无效,请问大侠们有什么好的方法?
慕森王
浏览 1067回答 2
2回答

慕村225694

publicabstractclassBaseAlertDialogextendsAlertDialog{protectedContextmContext;publicBaseAlertDialog(Contextcontext){super(context);mContext=context;}publicBaseAlertDialog(Contextcontext,inttheme){super(context,theme);mContext=context;}publicabstractintgetLayoutRes();publicabstractvoidinitViews(ViewconvertView);@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);Viewview=getLayoutInflater().inflate(getLayoutRes(),null);setContentView(view);initViews(view);}publicBaseAlertDialogshowDialog(){show();returnthis;}}修改初始化方法传入值即可
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答