Android Spinner Array
问题描述:
我已经创建了一个Spinner,并为其填充了适用于我的应用程序的值,从而可以计算饮料中的酒精单位。Android Spinner Array
微调举行不同类型的饮料品脱,半品脱,瓶和罐的措施。
酒精单位由当用户选择一些讲这是在微调倍的饮料倍量的酒精比例超过1000
我希望发生的是持有的饮料的量计算出的价值形成微调,如品脱它将添加一个品脱体积的方程。
这是我对微调
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分,我需要它从微调公式添加饮料类型。
答
在您的活动中创建一个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;