我的旋转器有问题,它没有显示任何东西,我收到了错误。请检查以下代码:
private void createSpinnerValues(){
spinnerValues = new HashMap<String, Double>();
spinnerValues.put( "Sedentary", 1.2 );
spinnerValues.put( "Lightly Active", 1.375 );
spinnerValues.put( "Moderately Active", 1.55 );
spinnerValues.put( "Heavily Active", 1.725 );
} // end of createSpinnerValue
private Double getAnswer(String age, String in, String ft, String weight, Double selectedItemValueFromSpinner) {
double answer = ( ( 66 + ( 6.2377 * Double.parseDouble( weight ) ) +
( 12.7084 * ( Double.parseDouble( in ) * 12 + Double.parseDouble( ft ) ) )
- ( 6.8 * Double.parseDouble( age ) ) ) * selectedItemValueFromSpinner );
return answer;
} // end of getAnswer method
private Double getSelectedItemValueFromSpinnerText( String spinnerText ) {
Double val = spinnerValues.get( spinnerText );
if( val==null ){
Log.i( "DEMO", "Value is null" ); }
return val;
}
private void calculateWomen(){
String f1a = etft.getText().toString();
String f2a = etin.getText().toString();
String f3a = etweight.getText().toString();
String f4a = etage.getText().toString();
if ( ( f1a.isEmpty() || f2a.isEmpty() || f3a.isEmpty() || f4a.isEmpty() ) )
// call for custom toast
viewErrorToast();
else{
// Metric Formula for BMR (Women) English Unit
//655 + ( 4.3379 x weight in pounds ) +
//( 4.6980 x height in inches ) - ( 4.6756 x age in years )
String age, in, ft, weight;
Double answer;
age = etage.getText().toString();
in = etin.getText().toString();
ft = etft.getText().toString();
weight = etweight.getText().toString();
answer = ( ( 665 + ( 4.3379 * Double.parseDouble( weight ) ) +
( 4.6980 * ( Double.parseDouble( in ) ) * 12 + Double.parseDouble( ft ) )
- ( 4.6756 * Double.parseDouble( age ) ) ) * 1.2);
BigDecimal bd = BigDecimal.valueOf( answer );
bd = bd.setScale( 2, BigDecimal.ROUND_FLOOR );
etanswer.setText( bd.toString() );
// call for custom toast
viewBMRSavedToast();
}
} // end of calculateWomen method
请帮我识别我的问题,我是android编程的新手。任何帮助,将不胜感激。感谢
答案 0 :(得分:0)
我假设您使用微调器略微错误的方式有一个小例子。 设置适配器和微调器 int pos = 0; //类变量 List list = new ArrayList(); Spinner spin =(Spinner)findViewById(R.id.id); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item,list); adapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinPriceFor.setAdapter(适配器);
填充列表(您可以填充设置适配器并跳过此步骤)
list.add(item);
runOnUiThread(new Runnable() {
public void run() {
adapterRegion.notifyDataSetChanged();
}
});
从微调器
中选择元素spinSettle.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
pos=position;
String a = list.get(pos); //do what ever you want with selected item
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
当您需要spinnerValues的第二个值
时spinnerValues.get(list.get(pos));