Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在微调器setOnItemSelectedListener类中使用If-Else条件?_Java_Android - Fatal编程技术网

Java 如何在微调器setOnItemSelectedListener类中使用If-Else条件?

Java 如何在微调器setOnItemSelectedListener类中使用If-Else条件?,java,android,Java,Android,这里需要帮助!我有一个微调器,它决定用户是男性还是女性。我希望计算bmr。如果使用者是男性,bmr公式与女性不同。因此,我试图创建一个textview,它将显示微调器项的字符串内容,因为无法在onItemSelected方法中访问变量 这就是为什么我在第二部分中使用if-else语句来比较文本和字符串,并希望将bmr传递到另一个活动中,但这不起作用,因为默认情况下我得到了错误的值 spGender = (Spinner) findViewById(R.id.spinnerGender);

这里需要帮助!我有一个微调器,它决定用户是男性还是女性。我希望计算bmr。如果使用者是男性,bmr公式与女性不同。因此,我试图创建一个textview,它将显示微调器项的字符串内容,因为无法在onItemSelected方法中访问变量

这就是为什么我在第二部分中使用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);
        }
    });
spGender=(Spinner)findViewById(R.id.spinnerGender);
最终文本视图tvGender=(文本视图)findViewById(R.id.tvGenderTemp);
SPG.1选举(0);
spGender.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String item=parent.getItemAtPosition(position.toString();
tvGender.setText(项目);
}
@凌驾
未选择公共无效(AdapterView父级){
AlertDialog AlertDialog=新建AlertDialog.Builder(UserProfile.this).create();
alertDialog.setTitle(“警报”);
alertDialog.setMessage(“请选择性别!”);
alertDialog.setButton(alertDialog.BUTTON_中性,“确定”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.dismise();
}
});
alertDialog.show();
SPG.1选举(0);
}
});
//BMR公式第二部分
最终双bmr;
if(“Female”.equals(tvGender.getText().toString()))
{
bmr=(655+(13.7*用户体重)+(5.0*用户身高)-(6.8*用户年龄));
}
其他的
{
bmr=66+(13.7*用户体重)+(1.8*用户身高)-(4.7*用户年龄);
}
按钮btnUPSave=(按钮)findViewById(R.id.btnUserProfileSave);
btnUPSave.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(getApplicationContext(),“已保存!”,
Toast.LENGTH_LONG).show();
Intent in2=新的Intent(getApplicationContext(),CaloriesPage.class);
in2.putExtra(“mBMR”,bmr);
星触觉(in2);
}
});

直接从微调器获取所选项目并进行比较

 spGender.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

        if ("Female".equals(spGender.getSelectedItem().toString())){
         bmr = (655 + (13.7*userWeight) + (5.0*userHeight) - (6.8*userAge));
        }else{
        bmr = 66 + (13.7 * userWeight) + (1.8*userHeight) - (4.7*userAge);
        }

    }


    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
});
spGender.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
if(“Female”.equals(spGender.getSelectedItem().toString())){
bmr=(655+(13.7*用户体重)+(5.0*用户身高)-(6.8*用户年龄));
}否则{
bmr=66+(13.7*用户体重)+(1.8*用户身高)-(4.7*用户年龄);
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
public void已选择(AdapterView父项、视图、int位置、长id){
String item=parent.getItemAtPosition(position.toString();
tvGender.setText(项目);
如果(项目等于(“女性”)){
bmr=(655+(13.7*用户体重)+(5.0*用户身高)-(6.8*用户年龄));
}否则{
bmr=66+(13.7*用户体重)+(1.8*用户身高)-(4.7*用户年龄);
} 
}

试试这个,希望能奏效

  Spinner spGender;
    double bmr;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        List<String> spinnerArray = new ArrayList<>();
        spinnerArray.add("male");
        spinnerArray.add("female");
        spGender = (Spinner) findViewById(R.id.spinnerGender);
        ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, spinnerArray);
        spGender.setAdapter(arrayAdapter);
        final TextView tvGender = (TextView) findViewById(R.id.tvGenderTemp);
        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);
                //BMR FORMULA PART II
                double userWeight = 10;
                double userHeight = 20;
                double userAge = 35;
                if (spGender.getSelectedItem().equals("female"))
                {
                    bmr = (655 + (13.7 * userWeight) + (5.0 * userHeight) - (6.8 * userAge));
                } else {
                    bmr = 66 + (13.7 * userWeight) + (1.8 * userHeight) - (4.7 * userAge);
                }

            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.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();
            }
        });
        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(), Main2Activity.class);
                in2.putExtra("mBMR", bmr);
                startActivity(in2);
            }
        });

    }
Spinner;
双bmr;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
List spinnerray=new ArrayList();
添加(“男性”);
添加(“女性”);
spGender=(Spinner)findViewById(R.id.spinnerGender);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u微调器\u项,SpinneArray);
设置适配器(arrayAdapter);
最终文本视图tvGender=(文本视图)findViewById(R.id.tvGenderTemp);
spGender.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
String item=parent.getItemAtPosition(position.toString();
tvGender.setText(项目);
//BMR公式第二部分
双倍用户重量=10;
双用户高度=20;
双用户年龄=35岁;
if(spGender.getSelectedItem().equals(“女性”))
{
bmr=(655+(13.7*用户体重)+(5.0*用户身高)-(6.8*用户年龄));
}否则{
bmr=66+(13.7*用户体重)+(1.8*用户身高)-(4.7*用户年龄);
}
}
@凌驾
未选择公共无效(AdapterView父级){
AlertDialog AlertDialog=新建AlertDialog.Builder(MainActivity.this.create();
alertDialog.setTitle(“警报”);
alertDialog.setMessage(“请选择性别!”);
alertDialog.setButton(alertDialog.BUTTON_中性,“确定”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.dismise();
}
});
alertDialog.show();
}
});
按钮btnUPSave=(按钮)findViewById(R.id.btnUserProfileSave);
btnUPSave.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
  Spinner spGender;
    double bmr;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        List<String> spinnerArray = new ArrayList<>();
        spinnerArray.add("male");
        spinnerArray.add("female");
        spGender = (Spinner) findViewById(R.id.spinnerGender);
        ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, spinnerArray);
        spGender.setAdapter(arrayAdapter);
        final TextView tvGender = (TextView) findViewById(R.id.tvGenderTemp);
        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);
                //BMR FORMULA PART II
                double userWeight = 10;
                double userHeight = 20;
                double userAge = 35;
                if (spGender.getSelectedItem().equals("female"))
                {
                    bmr = (655 + (13.7 * userWeight) + (5.0 * userHeight) - (6.8 * userAge));
                } else {
                    bmr = 66 + (13.7 * userWeight) + (1.8 * userHeight) - (4.7 * userAge);
                }

            }
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.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();
            }
        });
        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(), Main2Activity.class);
                in2.putExtra("mBMR", bmr);
                startActivity(in2);
            }
        });

    }