我有这样的代码
public class fragment2 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.content, container, false);
}
}
我想调用活动类而不是布局。 请帮帮我。
答案 0 :(得分:0)
以下链接通过活动讨论两个片段之间的通信..
http://developer.android.com/training/basics/fragments/communicating.html
可以使用相同的示例与片段中的活动进行通信。
答案 1 :(得分:0)
例如,如果您有名为MyActivity和MyFragment的活动和片段,
您可以在MyActivity中提供一些公共方法。在MyFragment#onCreateView()之后
你可以打电话
String layout = ((MyActivity)getActivity()).getMyLayoutLink()
答案 2 :(得分: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