【问题标题】:How can I create a spinner within a fragment?如何在片段中创建微调器?
【发布时间】:2017-07-18 09:18:45
【问题描述】:

我正在尝试在片段中创建微调器,但是在制作微调器对话框时,它无法使用“.this”识别片段 java 类。我不确定我应该做什么,任何帮助将不胜感激。 (对话框在 OnCreate 方法中定义)

ArrayList<String> ingredients = new ArrayList<>();
SpinnerDialog spinnerDialog;
Button add;

spinnerDialog = new SpinnerDialog(Add.this, ingredients, "Select An Ingredient");
    spinnerDialog.bindOnSpinerListener(new OnSpinerItemClick() {
        @Override
        public void onClick(String Ingredient, int i) {

            Toast.makeText(Add.super.getContext(), "Selected ", Toast.LENGTH_SHORT).show();

        }
    });

    add = (Button) getView().findViewById(R.id.add);
    add.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v){

            spinnerDialog.showSpinerDialog();

        }

    });

【问题讨论】:

    标签: android fragment spinner


    【解决方案1】:

    Add.this 替换为getActivity()

    很难确定到底是什么问题(因为我不知道SpinnerDialog 是如何实现的),但是构造函数的第一个参数很可能是ContextFragments 不实现 Context,但 Activitys 实现。因此,不要传入您的 Fragment 实例,而是传入包含 Activity 的实例。

    【讨论】:

      【解决方案2】:

      Add.this 是上下文参数。

      如果Add.class是一个片段,则在传递上下文参数时使用getActivity()

      但如果Add.class 是一个活动,则改为Add.this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多