2015-05-04 17 views
0

我有一個Activity1,顯示一個自定義dialogfragment - ExampleDialog。我已經實現了dialogfragment的監聽器SubmitDialogListener,以使用onSubmit()與活動進行通信。在onSubmit()中,我顯示了一些其他對話框片段。我的問題是,如果我從Activity2中顯示相同的ExampleDialog片段,Activity2是否應該實現SubmitDialogListener接口並再次在Activity2中實現onSubmit()方法?或者有更好的方法來定義onSubmit()方法嗎?Android:如何定義多個活動訪問的對話框片段?

import android.support.v4.app.DialogFragment; 
// ... 
public class Activity1 extends ActionBarActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    ...... 
    showDialog(); 
} 

private void showDialog() { 
    FragmentManager fm = getSupportFragmentManager(); 
    ExampleDialog exDialog = ExampleDialog.newInstance("Some Title"); 
    exDialog.show(fm, "fragment_edit_name"); 
} 

@Override 
public void onSubmit() { 
//open new fragments 
} 
} 

public class ExampleDialog extends DialogFragment implements SubmitDialogListener { 

public interface SubmitDialogListener { 
    void onSubmit(); 
} 

public ExampleDialog() { 
    // Empty constructor required for DialogFragment 
} 

public static ExampleDialog newInstance(String title) { 
    ExampleDialog frag = new ExampleDialog(); 
    Bundle args = new Bundle(); 
    args.putString("title", title); 
    frag.setArguments(args); 
    return frag; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_edit_name, container); 
    ......... 

    Button button = (Button) v.findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

     SubmitDialogListener listener = (SubmitDialogListener) getActivity(); 
     listener.onSubmit(); 
     dismiss(); 
     } 
    }); 

    return view; 
} 
} 

回答

0

在這種情況下,活動應該實現SubmitDialogListener不是對話片段,像這樣:

public class Activity1 extends ActionBarActivity implements SubmitDialogListener { 

    @Override 
    public void onSubmit() { 
    //open new fragments 
    } 
} 

如果你想使用相同的對話片段在多個活動,一般最好創建它在一個單獨的類文件中。

相關問題