将变量传递给不同的方法?
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
变量。
你好我正在制作一个 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
变量。