将变量传递给不同的方法?

Pass a variable to a different method?

你好我正在制作一个 bmi 计算器我希望它基于 3 个变量工作,体重身高和性别。 允许用户选择的微调器中的性别:

final Spinner spinner = view.findViewById(R.id.gender);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this.getActivity(),R.array.gender, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);

问题是微调器使用了一种全新的方法来工作:

@Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
      String gendertext = parent.getItemAtPosition(position).toString();
        Toast.makeText(parent.getContext(), gendertext,Toast.LENGTH_SHORT).show();

    }

我想获取那个变量 gendertext 并在 onCreateView

中的这部分代码上使用它
        edit_height = (EditText) view.findViewById(R.id.edit_height);
        edit_weight = (EditText) view.findViewById(R.id.edit_weight);
        button_calculate_bmi = (Button) view.findViewById(R.id.button_calculate_bmi);
        text_results = (TextView) view.findViewById(R.id.text_results);

        button_calculate_bmi.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v){
                String results = "Results:";
                float height = 0;
                float weight = 0;
                try {
                    height = Float.parseFloat(edit_height.getText().toString());
                    weight = Float.parseFloat(edit_weight.getText().toString());
                } catch (Exception ex) {
                    Context context = getActivity();
                    CharSequence text = "You forgot to enter something";
                            int duration = Toast.LENGTH_SHORT;

                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show();
                }

                height = height/100;
                float bmi = weight / (height * height);






                text_results.setText(results+bmi);
            }
        });




        return view;
    }

提前致谢!

您可以在 Activity 中的所有方法之外创建 genderText 变量,并将其初始化为 R.array.gender 中的第一项。当微调器中的值发生变化时,将调用 onItemSelected 并获得更新后的值,您可以将其设置为变量 genderText.

然后在按钮 OnClickListener 中你可以使用 genderText 变量。