Android Spinner数组

时间:2012-04-21 18:16:06

标签: android arrays android-spinner

我创建了一个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,我需要将饮料类型从微调器添加到等式中。

1 个答案:

答案 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;