2013-02-01 54 views
1

我有3個紡紗廠在我的XML ..微調OnItemSelectedListener法在Android的問題

1. one is Product Name 
2. one is Product Quantity. 
3. and 3rd one is Discount 

現在,我呼籲單獨的偵聽器爲每一個..問題是我想用項目的數量來計算最終的價格和我打電話給所有微調的人都是以我寫的名字,數量和折扣相同的順序。

儘管我上面寫了Discount Spinner,但我最終調用了Quantity的監聽器..我不知道發生了什麼。任何人都會遇到這個問題...請幫助我..

這是我的微調監聽器: -

spnSelectItem.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) 
      { 
       strItem=spnSelectItem.getItemAtPosition(arg2).toString();   } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 

      ///This method called last.. 
     spnQty.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) 
      { 
       strQty=spnQty.getItemAtPosition(arg2).toString(); 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
    ///This method called before spnQty .. 
    spnItemDiscount.setOnItemSelectedListener(new OnItemSelectedListener() 
     { 
      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) 
      { 
       disc=round(Double.parseDouble(spnItemDiscount.getItemAtPosition(arg2).toString().replace("%", ""))); 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 

      } 
     }); 
+0

爲什麼不分享你的代碼? –

+0

@DoctororDrive現在,檢查我的代碼.. –

+0

你必須像先處理後像管理點擊下一個微調將同意點擊,直到用戶不能點擊2微調或3微調 –

回答

4

爲什麼不創建一個單獨的方法來執行所有的計算是這樣的:

private void calculatePrice() { 
     String strItem = spnSelectItem.getSelectedItem().toString(); 
     String qty = spnQty.getSelectedItem().toString(); 
     String discount = spnItemDiscount.getSelectedItem().toString().replace("%", ""); 

     //perform calculate and update UI as you like 
    } 

,然後要麼做一個監聽所有三個紗廠或打電話給他們在他們所有,例如:

spnSelectItem.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 

      //do some work, update UI or reset qty and discount spinner or whatever 
      strItem = spnSelectItem.getItemAtPosition(arg2).toString(); 

      //call calulcate method 
      calculatePrice(); 
     } 
    }); 
+0

所有三個Listeners(Spinner)自動在onCreate()中調用activity ..並且不按順序調用.. –

+0

so?我沒有看到他們被自動調用的問題? – Waqas

+0

我想根據Spinner值計算onCreate()中的值,因爲我不想按順序調用它,問題是我設置了1,2和3 spinner監聽器,並且它按1,3,和2所以,我得到的第二個微調值是來自第三微調值的空值 –