我是Fragment中的新手,我正在尝试在Fragment类中使用Activity方法。那么请帮助我如何在Fragment中使用Activity方法。以及我如何在Fragment中使用List<NameValuePair>
,SharedPreferences
。
public class DashboardFragment extends Fragment {
public DashboardFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_dashboard, container, false);
return rootView;
}
这是片段代码,我想在此使用Activity方法。所以,请帮助我在这部分是新的。如果还有其他方法,请告诉我。
答案 0 :(得分:0)
1)您可以在Fragment中使用getActivity()方法获取Activity实例:
Activity activity = getActivity();
然后您可以使用实例调用任何Activity方法:
activity.method();
2)关于SharedPreferences,您还可以在Fragment中使用getContext()方法获取Context实例。
Context context = getContext();
所以你可以用实例调用getSharedPreferences()方法:
SharedPreferences sharedPreferences = context.getSharedPreferences(String name, int mode);
3)List<T>
是一个纯Java类。所以你可以在Fragment中使用它而没有任何限制。
答案 1 :(得分:0)
在调用片段的onAttach
方法后(请参阅Fragment lifecycle),您可以通过片段getActivity()
方法获取对活动的引用。然后,您可以将此引用转换为您的活动类型并调用方法:
((MyActivity)getActivity()).method();
答案 2 :(得分:0)
您的活动方法需要是静态的和公开的。然后你可以在片段中进行以下操作:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if (activity instanceof MyActivity) {
this.activity = activity;
sharedPreferences = activity.getSharedPreferences(...);
}
}
在片段中声明MyActivity activity
。
然后你可以在另一个地方拨打activity.yourMethod()
。别忘了检查活动是否为空。
答案 3 :(得分:0)
为此使用接口实现。像这样的事情:
的活动:
MyActivity extends AppCompatActivity implements CallBack {
@Override
public void onCallBack() {
// do something
}
}
和碎片:
MyFragment extends Fragment {
public interface CallBack {
void onCallBack();
}
private CallBack callBack;
@Override
public void onAttach(Activity context) {
callBack = (CallBack) activity;
}
// when clicking or whatever it takes to call
callBack.onCallBack();
}