我的应用中有自定义对话框。我的自定义对话框我实现为具有transperent背景的Activity和视图对话框。 Mu自定义对话框看起来像警报对话框,带有标题,消息和按钮。我正在尝试做的是创建一个很好的界面来设置我的弹出窗口的标题,消息和onClickListener。
首先,我要把所有员工的意图放在:
Intent intent = new Intent (this, CustomPopup.class);
intent.putExta ("Title", "PopupTitle");
intent.putExta ("Message", "PopupMessage");
intent.putExtra ("OnCLickListener", ?????); //here is problem
startActivity(intent);
但问题是无法将OnCLickListener用于意图。
其次,我尝试创建实现Parcable的类。 但问题是一样的
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(title);
dest.writeString(message);
dest.writeValue(buttonClickListener); // here is problem. I cannot write Interface
}
我无法将OnCLickListener写入Parcel对象。
怎么样?如何编写自定义弹出窗口的漂亮界面?因为弹出窗口可以有不同的标题和消息,弹出窗口将用于许多活动....提前感谢
答案 0 :(得分:1)
创建一个实现OnClickListener和Serializable的类。通过Intent将实例发送到"对话框"。
答案 1 :(得分:0)
如果弹出窗口的行为不同,请创建包含这些行为的CustomPopup的子类。您仍然可以传入这些侦听器需要处理的数据。
答案 2 :(得分:0)
谢谢@toadzky。 只需将不可序列化的对象作为参数传递给方法,例如:
public interface OnActionInterface {
void onPositiveButtonClicked(Activity activity);
void onNegativeButtonClicked(Activity activity);
}
答案 3 :(得分:0)
只需将Serializable
扩展扩展到这样的界面:
public interface PlayerLambda extends Serializable {
public void updateWatchedProgress(int progress);
}