2

我基本上有一个显示一系列选项的对话框片段。

我想做的是,

传回调用活动,选择哪个选项。然后,这将在原始活动中调用一个方法。

我正在使用的自动取款机,

((Activity) method(); ,从对话框中调用调用活动方法,但这似乎非常有效,因为这样做时android响应时间会减慢。

换句话说,我怎样才能简单、快速地从我刚刚创建的片段中获取信息?

在活动中,

button.setOnClickListener( new OnClickListener() {

        public void onClick(View arg0)  {

            FragmentManager fm = getFragmentManager();
            FragClass frag = new FragClass();
            frag.show(fm, "fragment_sub_connections");

        }

然后在 FragClass 中,

    public FragClass()
{


}



@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{

    View view = inflater.inflate(R.layout.fragment_sub_connections, container);
            //some code here
}
4

1 回答 1

3

创建一个侦听器接口并允许您的活动实现它,这可以用作回调。

// In your fragment

public interface OnMyFragDismissListener(){
     void onMyFragDismissed(MyObject obj);
}    

// onCreate...

// someCode...

// However you have the user select the option
@Override
public void onDismiss(DialogInterface d){
     if(getActivity() instanceof OnMyFragDismissListener)}
        ((OnMyFragDismissListener)getActivity()).onMyFragDismissed(result); // result being the user choice
     }
}

然后像这样使用它:

public class YourActivity extends Activity implements OnMyFragDismissListener {

   // code...
    FragmentManager fragman = getFragmentManager();
    FragClass frag = new FragClass();
    frag.show(fm, "fragment_sub_connections");


  // code...

   @Override
   public void onMyFragDismissed(MyObject obj){
        // Fragment dismissed and object received!
   }

 }
于 2012-10-16T21:29:26.210 回答