4

スピナーアイテムが2つあります。1つは私のデイスピナーで、もう1つは私のマンススピナーです。月スピナーから月2月を選択し、日を30として選択した場合、それは実行されるべきではありません。

別の例:4月の月は30日なので、誰かが4月として月を選択し、31日として日を選択した場合、それは正しくありません。別のスピナーの値に対応する1つのスピナーの値を取得する方法を教えてください。

これが2つのスピナーがある私のコードです:

 @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>

いずれかの月を選択した場合、対応する番号を取得したいです。デイスピナーで自動的に日数注:ボタンをクリックした後にエラーメッセージが表示されないようにします。前もって感謝します。

4

2 に答える 2

2

とても簡単です。月スピナーにOnItemSelectedListener()を配置し、日スピナーを正しい値で初期化する独自のリスナーを追加します

于 2012-05-02T10:07:13.207 に答える
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

        }
    });
于 2012-05-02T10:51:44.297 に答える