这是我的对话框片段。在下面你可以看到字符串选择,在我从对话框中选择数字列表后保留结果。 如何在其他活动中保存此值?
final CharSequence[] items= {"1","2","3","4"};
String selection;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder= new AlertDialog.Builder(getActivity());
builder.setTitle("CHOOSE YOUR ITEM TO DELETE").setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case 0:
selection=(String) items[which];
break;
case 1:
selection=(String) items[which];
break;
case 2:
selection=(String) items[which];
break;
}
}
}).setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(),"Your item to delete is "+ selection,Toast.LENGTH_SHORT).show();
}
});
return builder.create();
}
}
答案 0 :(得分:0)
定义一个监听器/回调,并让另一个Activity
实现并对此DialogFragment
中的选择作出反应。 StackOverflow包含许多实现示例。
答案 1 :(得分:0)
在您的Activity
和私人variable
中定义一个公开方法,如下所示。
private String mString;
public setString(String s)
{
this.mString = s;
}
当用户点击按钮获取活动并设置如下所示的选定字符串时:
((YourActivity)getActivity).setString(selectedString);
您可以将字符串传递给Bundle
的其他活动。
如果您从许多活动中显示此DialogFragment
,则可以定义Listener
并实施您的活动。
public interface SelectionListener{
void onStringSelected(String s);
}
((SelectionListener)getActivity).onStringSelected(selectedString);
答案 2 :(得分:0)
永久保存: - 为了在活动中永久保存您的价值,您可以使用数据库说sqlite。 临时储蓄: - 1.对于这些,你有一个全局ArrayList选项,你可以存储。 2.您可以使用此处所述的回调,这与您Callback to a Fragment from a DialogFragment
几乎相同您 可以查看这些示例以获取更多详细信息http://www.kylebeal.com/blog/2011/11/android-datepickerdialog-and-the-dialogfragment/