2016-06-09 100 views
1

这是我的dialog-fragment。下面你可以看到字符串选择,保留结果后,我从对话框中的数字列表中选择。 如何将此值保存在其他活动中?从DialogFragment返回其他活动的值

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

定义监听器/回调,并有其他Activity实施和反应选择在这个DialogFragment。 StackOverflow包含许多实现的例子。

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);