我基本上有一个对话片段,显示了一系列选项。
我想做的是,
传回给调用活动,选择了哪个选项。然后,在原始活动中调用一个方法。
我正在使用的ATM,
((Activity)method();,从对话框中调用调用活动方法, 但这似乎非常有效,因为在执行此操作时,响应时间会减慢。
换句话说,我怎样才能简单地从我刚创建的片段中快速获取信息?
在活动中,
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
}
答案 0 :(得分: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!
}
}