Java 在片段中声明的访问微调器

Java 在片段中声明的访问微调器,java,android,android-activity,android-fragments,Java,Android,Android Activity,Android Fragments,我有一个微调器,我用资源中的数组列表填充它。我已经填充了它,代码正在正确编译。我现在的问题是,我似乎不知道如何从我的主类访问微调器。例如,我有我的类“CreateExerciseActivity”,其中有我的方法“createExercise” 下面是我的片段代码,我在这里初始化并填充微调器 public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { }

我有一个微调器,我用资源中的数组列表填充它。我已经填充了它,代码正在正确编译。我现在的问题是,我似乎不知道如何从我的主类访问微调器。例如,我有我的类“CreateExerciseActivity”,其中有我的方法“createExercise”

下面是我的片段代码,我在这里初始化并填充微调器

public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() {
    }

    private Spinner spinner;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater
                .inflate(R.layout.fragment_create_exercise_activiy,
                        container, false);
        loadSpinnerCategories(rootView);
        return rootView;
    }

    private void loadSpinnerCategories(View view){
        spinner = (Spinner) view.findViewById(R.id.category_spinner);
        ArrayAdapter<CharSequence> adapter =    ArrayAdapter.createFromResource(getActivity().getBaseContext(), R.array.categories,
                android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    }
}
公共静态类占位符片段扩展片段{
公共占位符片段(){
}
私人纺纱机;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机
.充气(右布局、碎片、创建、练习、,
货柜(虚假);;
loadSpinnerCategories(rootView);
返回rootView;
}
专用void loadSpinnerCategories(视图){
微调器=(微调器)视图.findViewById(R.id.category\u微调器);
ArrayAdapter=ArrayAdapter.createFromResource(getActivity().getBaseContext(),R.array.categories,
android.R.layout.simple\u微调器(项目);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
}
}

我想知道如何从第一个类“CreateExerciseActivity”访问微调器,因为它已从片段填充。我希望能够选择某人选择的选项,并在方法“createExercise”中将其与练习名称一起输入数据库。

有很多方法可以做到这一点

通常,您希望响应片段中的某种类型的事件。例如,按下一个按钮。从片段中,您可以如下方式调用活动:

CreateExerciseActivity activity = (CreateExerciseActivity) getActivity();
activity.createExercise(....);
例如,更好的方法是让活动实现接口IOptionSelectedListener。接口可以有一个名为OnOptionSelected(value)的方法。然后你可以做:

IOptionSelectedListener listener = (IOptionSelectedListener) getActivity();
listener.OnOptionSelected(....);
您还可以将活动引用传递给片段的newInstance()方法,而不是调用getActivity()

活动还可以引用片段并调用片段上的方法以获取微调器的实际值。

您正在为活动和片段使用布局(xml)
fragment\u create\u exercise\u activiy.xml
然后在活动中填充微调器或在片段内添加单击函数。
IOptionSelectedListener listener = (IOptionSelectedListener) getActivity();
listener.OnOptionSelected(....);