2015-04-20 67 views
0

我有這樣的方法,如圖所示下面的截圖,它返回三個值,當它崩潰,加載數據到Android微調和選擇項目

List<String> resultSizes = getFilteredSizes(crustSelectedItem); 

enter image description here

而且我裝這3個數據到Android微調,然後我用一張這個代碼來獲取我所選擇的微調值,

String StrSizeSPPosition = String.valueOf(sizeSP.getSelectedItemPosition()); 

它說0

然後,我有一個字符串列表作爲sizePrice, 它返回如下值,

enter image description here

進出口使用這段代碼利用該工具來獲取所選項目的尊崇價值,

StrPriceSize = sizePrice.get(SizeSPPosition); // crashes here 
PriceSize = Double.parseDouble(StrPriceSize); 
System.out.println("PriceSize = " + PriceSize); 

我的問題是當我選擇泛大,那麼它應該給輸出1560,因爲我得到的索引位置,但它給450.當我選擇其他值它c皮疹給予例外。

這是個例外,

enter image description here

這是logcat的輸出

enter image description here

完整代碼

     List<String> resultSizes = getFilteredSizes(crustSelectedItem); 

         ArrayAdapter<String> dataAdapterDes = new ArrayAdapter<String>(
           Activity.this, 
           android.R.layout.simple_spinner_item, 
           resultSizes); 
         dataAdapterDes 
           .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
         sizeSP.setAdapter(dataAdapterDes); 

         sizeSP.setOnItemSelectedListener(new MyOnItemSelectedListener(
           Activity.this) { 

          public void onNothingSelected(AdapterView<?> arg0) { 
          } 

          @Override 
          public void onItemSelected(AdapterView<?> parent, 
            View view, int position, long id) { 

           String sizeSelectedItem = sizeSP 
             .getSelectedItem().toString(); 

           String StrSizeSPPosition = String 
             .valueOf(sizeSP 
               .getSelectedItemPosition()); 

           System.out.println("sizeSelectedItem = " 
             + sizeSelectedItem); 
           System.out.println("StrSizeSPPosition = " 
             + StrSizeSPPosition); 

           SizeSPPosition = Integer 
             .parseInt(StrSizeSPPosition); 

           String StrPriceSize = sizePrice 
             .get(SizeSPPosition); 
           PriceSize = Double.parseDouble(StrPriceSize); 

(我有另一種選擇它只有1當我的價值選擇它可以正常工作而不會崩潰,我認爲只有當我有數據mora時纔會出現這個問題1) 我希望我的問題足夠清楚。如果您需要更多詳細信息,請提出清楚的問題。任何幫助將不勝感激,理清這一點。

+0

顯示代碼,不僅調試pupup –

+0

如果使用'StrPriceSize = resultSizes.get(SizeSPPosition);'然後?因爲在發佈圖像1560,870,450顯示在'resultSizes'列表 –

+0

@ρяσѕρєяK然後取價格並顯示(PriceSize)它。我想要做的是使用選定的商品位置,並使用所選商品位置從價格數組(pricePrice)中獲取商品的價格。 – modabeckham

回答

1

代替此行代碼: -

String StrPriceSize = sizePrice.get(SizeSPPosition); 
PriceSize = Double.parseDouble(StrPriceSize); 

將這個代碼: -

String StrPriceSize = resultSizes.get(SizeSPPosition); 
PriceSize = Double.parseDouble(StrPriceSize); 

或試試這個: -

嘗試打印Log.d( 「sizePriceList」 ,sizePrice +「」);在代碼中,並檢查從微調器中選擇項目時得到的元素數量。你的logcat顯示indexoutofbound的異常,這意味着你只能得到一個sizePrice

+0

我的壞我用同樣的方法來獲得輸出,因爲我想截圖。該方法原來用於獲取結果大小而不是價格。 sizePrice是字符串列表,我加上所有的價格 – modabeckham

+0

請upvote /接受,如果我的回答解決您的問題 – Pankaj

+0

它不解決,我認爲你misunderstoond sizePrice和resultSizes因爲我的屏幕截圖 – modabeckham