Java 获取微调器项并计算后,应用程序自动关闭
每当我按下按钮进行计算时,应用程序就会自动关闭。这可能是由于微调器(我有一个单独的应用程序来测试没有微调器的其他字段),从微调器获取项目并在正确的条件下使用它的方法是否正确?感谢您的帮助 main活动Java 获取微调器项并计算后,应用程序自动关闭,java,android,android-spinner,Java,Android,Android Spinner,每当我按下按钮进行计算时,应用程序就会自动关闭。这可能是由于微调器(我有一个单独的应用程序来测试没有微调器的其他字段),从微调器获取项目并在正确的条件下使用它的方法是否正确?感谢您的帮助 main活动 public class MainActivity extends Activity implements OnItemSelectedListener{ EditText height; EditText weight; EditText age; TextView calori
public class MainActivity extends Activity implements OnItemSelectedListener{
EditText height;
EditText weight;
EditText age;
TextView calories;
Button calculate;
double h,w,wc,hc,m,wm,z,a,ac;
Spinner spinner, spinner2;
String choice;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initControls();
// Spinner element
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Spinner click listener
spinner.setOnItemSelectedListener(this);
// Spinner Drop down elements
List<String> activity = new ArrayList<String>();
activity.add("Sedentary(little/no)");
activity.add("Lightly Active(1-3days/week)");
activity.add("Moderately(3-5days/week)");
activity.add("Very Active(6-7days/week)");
activity.add("Extremely Active(Physical Job/2x Training)");
// Spinner element
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
// Spinner click listener
spinner2.setOnItemSelectedListener(this);
// Spinner Drop down elements
List<String> gender = new ArrayList<String>();
gender.add("Male");
gender.add("Female");
// Creating adapter for spinner
ArrayAdapter<String> activityAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, activity);
ArrayAdapter<String> genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, gender);
// Drop down layout style - list view with radio button
activityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(activityAdapter);
spinner2.setAdapter(genderAdapter);}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// On selecting a spinner item
String item = parent.getItemAtPosition(position).toString();
// Showing selected spinner item
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
private void initControls(){
height=(EditText)findViewById(R.id.height);
weight=(EditText)findViewById(R.id.weight);
age=(EditText)findViewById(R.id.age);
calories=(TextView)findViewById(R.id.calories);
calculate=(Button)findViewById(R.id.calculate);
calculate.setOnClickListener(new Button.OnClickListener()
{public void onClick
(View v) { calculate();}});
}
private void calculate(){
h=Double.parseDouble(height.getText().toString());
w=Double.parseDouble(weight.getText().toString());
a=Double.parseDouble(age.getText().toString());
hc=h*6.25;
wc=w*10;
ac=a*5;
m= wc+hc-ac+5;
wm=wc+hc-ac-161;
Log.e("Error","messagehere1");
String choice = spinner.getSelectedItem().toString();
switch(choice){
case "Sedentary(little/no)":
if(spinner2.getSelectedItem().equals("Male")){
z=m*1.2;
calories.setText(Double.toString(z));
}
else{
z=wm*1.2;
calories.setText(Double.toString(z));}
case "Lightly Active(1-3days/week)":
if(spinner2.getSelectedItem().equals("Male")){
z=m*1.375;
calories.setText(Double.toString(z));
}
else{
z=wm*1.375;
calories.setText(Double.toString(z));}
case "Moderately(3-5days/week)":
if(spinner2.getSelectedItem().equals("Male")){
z=m*1.55;
calories.setText(Double.toString(z));
}
else{
z=wm*1.55;
calories.setText(Double.toString(z));}
case "Very Active(6-7days/week)":
if(spinner2.getSelectedItem().equals("Male")){
z=m*1.725;
calories.setText(Double.toString(z));
}
else{
z=wm*1.725;
calories.setText(Double.toString(z));}
case "Extremely Active(Physical Job/2x Training)":
if(spinner2.getSelectedItem().equals("Male")){
z=m*1.9;
calories.setText(Double.toString(z));
}
else{
z=wm*1.9;
calories.setText(Double.toString(z));}
}
}
更改这些行
// Spinner element
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Spinner element
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
与
这会奏效的
// Spinner element
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Spinner element
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner = (Spinner) findViewById(R.id.spinner);
spinner2 = (Spinner) findViewById(R.id.spinner2);