Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据其他微调器获取微调器值_Android_Android Spinner - Fatal编程技术网

Android 如何根据其他微调器获取微调器值

Android 如何根据其他微调器获取微调器值,android,android-spinner,Android,Android Spinner,我有两个旋转器项目。一个是我的日微调器,另一个是我的月微调器。 如果我从“月微调器”中选择“月二月”,如果我选择“日”为30,则不应执行此操作 另一个例子:4月有30天,所以如果有人选择月为4月,天为31日,那么这是不正确的。请告诉我如何获得一个微调器的值对应于另一个微调器的值 这是我的代码,其中有两个微调器: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(saved

我有两个旋转器项目。一个是我的日微调器,另一个是我的月微调器。 如果我从“月微调器”中选择“月二月”,如果我选择“日”为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);


}}
定义微调器的My 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" />
我的微调器布局:

<?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"
/>
我的日子数组

我的月数组

<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>
如果我选择任何月份,我希望在“日期”微调器中自动获取相应的天数
注意:我不希望在单击按钮后出现任何错误消息。提前谢谢。

这真的很简单。在月微调器上放置一个OnItemSelectedListener,添加您自己的侦听器,该侦听器使用正确的值初始化日微调器

+1。OP也可以不用庞大的day数组:-以编程方式初始化这样的数组会更容易…LatLonDemo类做什么?抱歉,我已经在这个类中实现了,所以你可以写你的类名而不是LatLonDemo。没关系。。你帮了我很多忙:你能解决这个问题吗。。我完全相信你,请检查答案,我试过了,但没有解决。
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

        }
    });
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

        }
    });