我在微调android有困难,更具体的数据保存部分。Android微调不正确返回Id
首先,我要告诉你下面的代码背后的目的是什么。
我想创建一个微调器,用户可以选择要购买哪个行星,然后当他/她点击提交按钮时,一个敬酒会出现“您想要购买:....”,然后购买总结如用户名&价格。
但是,在这个过程中,我很难保存每个微调元素的id。
每次我选择“地球”(id = 1)&点击提交,敬酒将始终引用回到“火星”其id = 0。所以看来,问题是我的提交按钮将始终重置选择的ID。
我故意设置planetSpinner()方法返回int,因此我总是可以追踪返回的“id”。但再次,提交按钮将始终使它显示为ID = 0.
任何人都可以帮我吗?我真的很感激。谢谢。
微调代码(MainActivity.java)
public int planetSpinner(){
context = this;
List<String> categories = new ArrayList<String>();
categories.add("Mars($12 billions)"); //0
categories.add("Earth ($99 billions)"); //1
categories.add("Jupiter ($13 billions)"); //2
cSpinner = (Spinner) findViewById(R.id.coffee_spinner);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cSpinner.setAdapter(dataAdapter);
cSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "You selected: " + cSpinner.getItemAtPosition(position), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Toast.makeText(MainActivity.this, "Nothing selected", Toast.LENGTH_LONG).show();
}
});
return cSpinner.getSelectedItemPosition();
}
提交申购代码(MainActivity.java)
public void submitOrder(View view){
Toast.makeText(MainActivity.this, "You wanted to buy: " + planetSpinner(), Toast.LENGTH_LONG).show();
displayMessage(confirmationOrder(userName, price));
}
你在这里错了..cSpinner.getItemAtPosition(位置),你必须采取父视图,parent.getItemAtPosition(位置).toString() –
嗨,是不是,如果我得到String中的id值,那么我不能在任何if语句中使用id?谢谢。 – John
@John,我没有明白上面的陈述是什么意思? –