Java 为对话添加额外内容
我有一个在Android中显示对话框的通用类。我如何向这个扩展了android.app.Dialog的类传递额外的内容 例如,对于活动,我可以使用Java 为对话添加额外内容,java,android,android-dialog,Java,Android,Android Dialog,我有一个在Android中显示对话框的通用类。我如何向这个扩展了android.app.Dialog的类传递额外的内容 例如,对于活动,我可以使用getIntent().getIntExtra() 我如何向这个扩展了android.app.Dialog的类传递额外的内容 首先我想说的是,您没有提供关于当前实现的更多细节,所以我提到的以下内容是,我假设您有一些返回对话框的方法(您提到您使用的是一个存储各种对话框的类) 那个么直接通过方法传递数据呢 public static final Dialo
getIntent().getIntExtra()
我如何向这个扩展了android.app.Dialog的类传递额外的内容
首先我想说的是,您没有提供关于当前实现的更多细节,所以我提到的以下内容是,我假设您有一些返回对话框的方法(您提到您使用的是一个存储各种对话框的类)
那个么直接通过方法传递数据呢
public static final Dialog getDialog(int id, String title) {
// do your stuff
}
或者您可以使用构造函数来实现您的目标:
public Dialog(Context context, String title, int data) {
super(context);
this.title = title;
this.data = data;
}
注意,您可以创建任何具有任意多个参数的构造函数。Dialog类只需要调用一个超级构造函数:
super(Context context);
super(Context context, int theme);
super(Context context, boolean cancelable, OnCancelListener listener);
因此,如果您正在调用其中一个,您就可以了。请使用另一个构造函数,例如:
public class MyClass extends Dialog
{
private Integer data;
public MyClass(Context context){super(c);}
public MyClass(Context context, Integer value)
{
super(c);
data = value;
}
}
然后你可以使用课堂上其他地方的数据。下面是我如何将额外内容传递给对话框的
public static final String TAG = "ExampleDialog";
private static final String BUNDLE_TITLE = "title"
...
public static ExampleDialog newInstance(String title) {
ExampleDialog dialog = new ExampleDialog();
Bundle bundle = new Bundle();
bundle.putString(BUNDLE_TITLE, title);
dialog.setArguments(bundle);
return dialog;
}
onCreateDialog
方法中,访问捆绑包中的字符串
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle bundle = this.getArguments();
final String title = bundle.getString(BUNDLE_TITLE);
...
}
ExampleDialog dialog = ExampleDialog.newInstance("Title of Dialog");
dialog.show(getFragmentManager(), ExampleDialog.TAG);
我不确定,但也许你可以通过构造函数传递?你想传递到对话数据,例如int吗?@Geralt是的。实际上,我需要将对话框标题作为字符串发送给它。但也许你可以重写构造函数,然后传递你需要的内容?例如,使用两个字段(上下文和YourDataObject)创建构造函数。调用super(context),然后将数据设置为构造函数中的字段