我创建了一个Spinner并用我的应用程序的值填充它,这将在饮料中计算出酒精单位。
旋转器持有不同类型的饮料品脱,半品脱,瓶子和罐头。
酒精单位的计算方法是将饮酒量保持在旋转器中,饮酒量乘以酒量百分比超过1000.
我想要发生的是当用户从微调器中选择一些值时,例如pint,它会将一个品脱的体积添加到等式中。
这是我对微调器的代码
int pint,half,bottle,can;
Spinner beerspinner;
Spinner spinner = (Spinner) findViewById(R.id.beerspinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.drinks_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
我想以某种方式将微调器的值与整数相匹配,以便我可以执行方程式。
pint = 568;
half = 284;
bottle = 275;
can = 440;
我还没有真正解释清楚这是我的完整代码,这样你就可以更好地了解我想要做的事情。
public class AppTestActivity extends Activity {
int pint,half,bottle,can;
Spinner beerspinner;
Button submit, reset;
EditText ABV,quantity;
TextView units, error;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ABV = (EditText) findViewById(R.id.ABV);
submit = (Button) findViewById(R.id.submit);
reset = (Button) findViewById(R.id.reset);
units = (TextView) findViewById(R.id.units);
error = (TextView) findViewById(R.id.error);
quantity= (EditText) findViewById(R.id.quantity);
Spinner spinner = (Spinner) findViewById(R.id.beerspinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.drinks_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
submit.setOnClickListener(new clicker());
}
class clicker implements Button.OnClickListener{
public void onClick(View v){
pint = 568;
half = 284;
bottle = 275;
can = 440;
String number,percentage;
Float calc;
percentage = ABV.getText().toString();
number = quantity.getText().toString();
calc = Float.parseFloat(number)*Float.parseFloat(percentage)/1000;
units.setText(calc.toString());
}
目前,代码按酒精百分比计算饮料次数,然后除以1000,我需要将饮料类型从微调器添加到等式中。
答案 0 :(得分:3)
在您的活动中创建一个int。
int drinkType;
为微调器使用setOnItemSelected侦听器:
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void on ItemSlected(...)
int selectedIndex=spinner.getSelectedItenPosition();
if(selectedIndex==0) //pint for example
drinkType = 568;
//do this for other drink types
}
在上面的代码中,你可以做到
calc = Float.parseFloat(number)*Float.parseFloat(percentage)/1000+ drinkType;