2012-05-02 104 views
4

我有兩個微調器項目。一個是我的一天微調,另一個是我的月度微調。 如果我從月份微調選擇月份2月,並且如果我選擇30天的日期,則不應該這樣做。如何根據其他微調器獲取微調器值

另一個例子:4月份有30天,所以如果有人選擇月份作爲4月份和31天,那麼它是不正確的。請告訴我如何獲得與另一個微調器的值相對應的一個微調器的值。

這裏是我的代碼,我有兩個微調:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
/*************day spinner**********/ 

     Spinner day = (Spinner) findViewById(R.id.spinner2); 
     ArrayAdapter<CharSequence> dayadapter = ArrayAdapter.createFromResource(
       this, R.array.item_day, android.R.layout.simple_spinner_item); 
     dayadapter.setDropDownViewResource(R.layout.spinner_layout); 
     day.setAdapter(dayadapter); 

     /*****************month spinner**********************/ 


     Spinner month = (Spinner) findViewById(R.id.spinner3); 
     ArrayAdapter<CharSequence> monthadapter = ArrayAdapter.createFromResource(
       this, R.array.item_month, android.R.layout.simple_spinner_item); 
     monthadapter.setDropDownViewResource(R.layout.spinner_layout); 
     month.setAdapter(monthadapter); 


}} 

我的XML,其中紡紗定義:

<Spinner 
      android:id="@+id/spinner2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/spinner3" 
      android:layout_alignTop="@+id/textView4" 
      android:layout_toLeftOf="@+id/textView3" /> 
    <Spinner 
      android:id="@+id/spinner3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/spinner2" 
      android:layout_toLeftOf="@+id/textView3" 
      android:layout_toRightOf="@+id/textView5" /> 

我spinner_layout:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/spinnerTarget" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#000000" 
      android:textSize="12pt" 
/> 

我的天陣

<string name="day_picker">Select an iten</string> 
<string-array name="item_day"> 
    <item>1</item> 
    <item>2</item> 
    <item>3</item> 
    <item>4</item> 
    <item>5</item> 
    <item>6</item> 
    <item>7</item> 
    <item>8</item> 
    <item>9</item> 
    <item>10</item> 
    <item>11</item> 
    <item>12</item> 
    <item>13</item> 
    <item>14</item> 
    <item>15</item> 
    <item>16</item> 
    <item>17</item> 
    <item>18</item> 
    <item>19</item> 
    <item>20</item> 
    <item>21</item> 
    <item>22</item> 
    <item>23</item> 
    <item>24</item> 
    <item>25</item> 
    <item>26</item> 
    <item>27</item> 
    <item>28</item> 
    <item>29</item> 
    <item>30</item> 
    <item>31</item> 

</string-array> 

我一個月陣列

<resources> 
    <string name="month_picker">Select an item</string> 
    <string-array name="item_month"> 
     <item>January</item> 
     <item>February</item> 
     <item>March</item> 
     <item>April</item> 
     <item>May</item> 
     <item>June</item> 
     <item>July</item> 
     <item>August</item> 
     <item>September</item> 
     <item>October</item> 
     <item>November</item> 
     <item>December</item> 
     </string-array> 
</resources> 

如果我選擇的任何一個月,我希望得到相應的無。天內自動調整日期 注意:單擊按鈕後,我不想要任何錯誤消息。提前致謝。

回答

1
month.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int pos, long id) { 
      // TODO Auto-generated method stub 
      List<String> s = Arrays.asList(getResources().getStringArray(R.array.item_day)); 
      if (pos == 0 || pos == 2 || pos == 4 || pos == 8 || pos == 9 
        || pos == 11) { 
       ArrayAdapter<String> dayadapter = new ArrayAdapter<String>(Latlondemo.this, android.R.layout.simple_spinner_item,s); 
       day.setAdapter(dayadapter); 
      } else if (pos == 1) { 
       s = s.subList(0,28);      
       ArrayAdapter<String> dayadapter = new ArrayAdapter<String>(Latlondemo.this, android.R.layout.simple_spinner_item,s); 
       day.setAdapter(dayadapter); 
      } else { 
       s = s.subList(0,30);      
       ArrayAdapter<String> dayadapter = new ArrayAdapter<String>(Latlondemo.this, android.R.layout.simple_spinner_item,s); 
       day.setAdapter(dayadapter); 
      } 
     } 

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

     } 
    }); 
+0

LatLonDemo類是做什麼的? – divaNilisha

+0

我得到你的邏輯反正謝謝 – divaNilisha

+0

對不起,我已經在這個類的實現,所以你可以寫你的類名,而不是LatLonDemo。 –

2

這很簡單。在月份微調器上添加一個OnItemSelectedListener(),添加您自己的偵聽器,用正確的值初始化一天微調器

+0

+1。而且OP也可以在沒有巨大的日期陣列的情況下完成:-)以編程方式初始化這樣一個數組將更容易在眼睛上... – epichorns

+0

您可否請給我代碼。 – divaNilisha