нужна помощь здесь! У меня есть счетчик, который определяет, является ли пользователь мужчиной или женщиной. Я хочу рассчитать bmr. Если пользователь является мужчиной, формула bmr отличается по сравнению с самкой. Таким образом, я пытался создать текстовое представление, которое отображает строковое содержимое элемента spinner, поскольку к переменной нельзя получить доступ в методе onItemSelected.Как использовать условия If-Else в классе spinner setOnItemSelectedListener?
Вот почему у меня есть часть II, где я использую инструкцию if-else, чтобы в основном сравнить тексты с строкой и, надеюсь, передать bmr в другую активность, но это не работает, поскольку я получаю неправильное значение по умолчанию ,
spGender = (Spinner) findViewById(R.id.spinnerGender);
final TextView tvGender = (TextView)findViewById(R.id.tvGenderTemp);
spGender.setSelection(0);
spGender.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = parent.getItemAtPosition(position).toString();
tvGender.setText(item);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
AlertDialog alertDialog = new AlertDialog.Builder(UserProfile.this).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("Please select a gender!");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
alertDialog.show();
spGender.setSelection(0);
}
});
//BMR FORMULA PART II
final double bmr;
if ("Female".equals(tvGender.getText().toString()))
{
bmr = (655 + (13.7*userWeight) + (5.0*userHeight) - (6.8*userAge));
}
else
{
bmr = 66 + (13.7 * userWeight) + (1.8*userHeight) - (4.7*userAge);
}
Button btnUPSave = (Button)findViewById(R.id.btnUserProfileSave);
btnUPSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Saved!",
Toast.LENGTH_LONG).show();
Intent in2 = new Intent(getApplicationContext(), CaloriesPage.class);
in2.putExtra("mBMR",bmr);
startActivity(in2);
}
});
попробовать проверить, как 'если ("Женщины". equalsIgnoreCase (tvGender.getText(). toString())) ' –
Здравствуйте, вопрос имеет 2 вопроса здесь: - // ФОРМА ФОРМУЛЫ BMR не запускается после вас выберите пол ==> поместите его в 'onItemSelected' -' onNothingSelected' не будет звонить в spinner, поэтому диалог не будет отображаться –
Спасибо, ребята! Технически все вы, ребята, правы. Хотелось бы подумать, что мой код тоже правильный, немного сложный. Причина этого заключалась в том, что моя двойная переменная была объявлена в классе spinner и что она должна быть объявлена до @Override, как то, что написал Сантош Кумар. – coffeeboi619