0

我有这样的代码

public class fragment2 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


    return inflater.inflate(R.layout.content, container, false);
}

}

我想调用活动类而不是布局。请帮我。

4

3 回答 3

0

您可以在片段中创建一个接口,然后在活动中实现它。然后在片段的 onAttach() 方法中设置侦听器。这在 onCreateView() 之前调用。这种模式使您的代码可重用,并且这种技术可以应用于您使用的所有活动和片段。片段的示例代码:

public class YourFragment extends Fragment {

    private OnItemSelectedListener onClickListener;

    public interface OnItemSelectedListener {
      //implement and use this function in your calling activity
      public void yourItemSelected(String link);
    }

    @Override
    public void onAttach(Activity activity) {
      super.onAttach(activity);
      //check that the activity implements the interface
      if (activity instanceof OnItemSelectedListener) {
        //set the listener to the calling activity
        onClickListener = (OnItemSelectedListener) activity;
      } else {
        throw new ClassCastException(activity.toString()
        + " must implement YourFragment.OnItemSelectedListener");
      }
    }

}

有关更多信息,请参阅 android 文档: http: //developer.android.com/training/basics/fragments/communicating.html
http://developer.android.com/guide/components/fragments.html#Lifecycle

于 2014-03-06T08:36:47.807 回答
0

以下链接讨论了两个片段之间通过活动进行的通信..

http://developer.android.com/training/basics/fragments/communicating.html

相同的示例可用于从片段通信回活动。

于 2012-10-23T07:01:13.797 回答
0

例如,如果您有名为 MyActivity 和 MyFragment 的活动和片段,则可以在 MyActivity 中提供一些公共方法。在 MyFragment#onCreateView() 之后,您可以调用 String layout = ((MyActivity)getActivity()).getMyLayoutLink()

于 2012-10-23T07:09:32.343 回答