我在微調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,我沒有明白上面的陳述是什麼意思? –