私はBMR(Base Metabolic Rate)用の電卓を作っていますが、 "Calculate(btnCal)"ボタンを押すと、結果は "維持"されているTextViewに書き込まれません。私はそれを固定しようとしましたが、私はそれを動作させることはできません。Androidボタンしない何か
ここに私のコードです。
package com.example.leks.calmeter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
public class actCal extends AppCompatActivity implements View.OnClickListener
{
private double act_val;
public double mBMR, fBMR, BMR = 0;
public EditText height, weight, age;
TextView maintain;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_act_cal);
init();
}
public void init()
{
Button btnCal;
btnCal = (Button) findViewById(R.id.btnCal);
btnCal.setOnClickListener(this);
}
@Override
public void onClick(View view)
{
Spinner spinner2 = (Spinner)findViewById(R.id.spinner2);
switch(view.getId())
{
case R.id.btnCal:
{
Spinner spinner = (Spinner)findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
String SelectedItem = parent.getItemAtPosition(position).toString();
if (SelectedItem.equals("Sedentary"))
{
act_val = 1.2;
}
if (SelectedItem.equals("Light"))
{
act_val = 1.375;
}
if (SelectedItem.equals("Moderate"))
{
act_val = 1.55;
}
if (SelectedItem.equals("Very Active"))
{
act_val = 1.725;
}
if (SelectedItem.equals("Extra Active"))
{
act_val = 1.9;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
String SelectedItem = parent.getItemAtPosition(position).toString();
if (SelectedItem.equals("Male"))
{
String heights = height.getText().toString();
String ages = age.getText().toString();
String weights = weight.getText().toString();
double wght = Double.parseDouble(weights);
double hght = Double.parseDouble(heights);
int ageint = Integer.parseInt(ages);
mBMR = ((10 * wght) + (6.25 * hght) - (5 * ageint) + 5) * act_val;
maintain.setText(String.valueOf(mBMR));
}
if (SelectedItem.equals("Female"))
{
//TODO Formula For Females here.
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
}
}
}
'public EditText height、weight、age;を必ず初期化してください。 TextView maintain; ' –
あなたのボタンをクリックすると、' Spinner'にリスナーしか設定されません。 TextViewが更新されるためには、スピナーの選択項目を変更する必要があります。あなたの 'init()'メソッドで 'Spinner'のリスナーを設定できるかもしれません。 –