I have one spinner in my activity and I put different value for every items selected. I'm using switch case for branching statement, but when O call kcptjalan
, which is a variable inside switch case with Toast, it shows 0 though I select every item inside spinner. How can I fix it?
This is my Activity.java
public class Main2Activity extends AppCompatActivity {
public TextView ttkalorisehari, ttkaloriseminggu,txtbb;
double naik_bb,kcptjalan,hasil_bakar,durasi;
Spinner kcpt;
String[]kecepatan = {"...","Jalan kaki santai (3 mph)","Jalan kaki cepat (4-5 mph)","Jalan kaki menaiki bukit (3,5 mph)","Naik tangga (3 mph)","Jalan kaki turun bukit (2,5 mph)"};
ArrayAdapter<String> adapter;
EditText etbb,etdurasi;
Button bhitung;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
bhitung = (Button)findViewById(R.id.btnhitung);
etbb = (EditText)findViewById(R.id.tbb);
etdurasi = (EditText)findViewById(R.id.tdurasi);
adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,kecepatan);
kcpt.setAdapter(adapter);
try {
double nilai_bb = Double.parseDouble(ttkaloriseminggu.getText().toString());
DecimalFormat df = new DecimalFormat("#.##");
naik_bb = (Double.valueOf(nilai_bb)/7000);
txtbb.setText(df.format(naik_bb));
}catch (Exception e){
Toast.makeText(getApplicationContext(),"Isi kolom kosong",Toast.LENGTH_LONG).show();
}
bhitung.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
pembakaran_kalori();
}catch (Exception e){
Toast.makeText(getApplicationContext(),"Kesalahan 2 : "+e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
}
public void pembakaran_kalori(){
try {
if (Integer.valueOf(etbb.getText().toString())>=54 && Integer.valueOf(etbb.getText().toString())<=63 ){
kcpt.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 1:
kcptjalan = 0.3;
break;
case 2:
kcptjalan = 0.16;
break;
case 3:
kcptjalan = 0.17;
break;
case 4:
kcptjalan = 0.12;
break;
case 5:
kcptjalan = 0.37;
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}else if (Integer.valueOf(etbb.getText().toString())>=72 && Integer.valueOf(etbb.getText().toString())<=81 ){
kcpt.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 1:
kcptjalan = 0.23;
break;
case 2:
kcptjalan = 0.12;
break;
case 3:
kcptjalan = 0.13;
break;
case 4:
kcptjalan = 0.13;
break;
case 5:
kcptjalan = 0.27;
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}catch (Exception e){
Toast.makeText(getApplicationContext(),"Kesalahan "+e.getMessage(),Toast.LENGTH_SHORT).show();
}
try {
durasi = Double.parseDouble(etdurasi.getText().toString());
hasil_bakar = ((durasi*kcptjalan)*2);
Toast.makeText(getApplicationContext(),"Pembakaran kalori anda = "+kcptjalan,Toast.LENGTH_SHORT).show();
}catch (Exception e){
Toast.makeText(getApplicationContext(),"Kesalahan 3 : "+e.getMessage(),Toast.LENGTH_SHORT).show();
}
}
}