Android 使微调器依赖于在其他微调器上选择的项目

Android 使微调器依赖于在其他微调器上选择的项目,android,drop-down-menu,spinner,android-spinner,dropdown,Android,Drop Down Menu,Spinner,Android Spinner,Dropdown,我想根据所选月份显示天数。比如,如果选择的月份是1月,则显示日期为31日,如果选择的月份是2月,则显示日期为29日。我看到并尝试了一些解决方案,但都不适合我 这是我的注册活动课程: public class SignupActivity extends AppCompatActivity { EditText first; EditText last; TextView birth; Spinner month; Spinner date; Sp

我想根据所选月份显示天数。比如,如果选择的月份是1月,则显示日期为31日,如果选择的月份是2月,则显示日期为29日。我看到并尝试了一些解决方案,但都不适合我

这是我的注册活动课程:

public class SignupActivity extends AppCompatActivity {

    EditText first;
    EditText last;
    TextView birth;
    Spinner month;
    Spinner date;
    Spinner year;
    EditText email;
    EditText phone;
    EditText username;
    EditText password;
    Button done;

    String[] dayOptions = new String[]{
            "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"
    };

    String[] dayOptions2 = new String[]{
            "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_signup);

        first = (EditText) findViewById(R.id.firstName);
        last = (EditText) findViewById(R.id.lastName);
        birth = (TextView) findViewById(R.id.birthText);
        month = (Spinner) findViewById(R.id.birthMonth);
        date = (Spinner) findViewById(R.id.birthDate);
        year = (Spinner) findViewById(R.id.birthYear);
        email = (EditText) findViewById(R.id.email);
        phone = (EditText) findViewById(R.id.phoneNumber);
        username = (EditText) findViewById(R.id.usernameEdit);
        password = (EditText) findViewById(R.id.passwordEdit);
        done = (Button) findViewById(R.id.done);


        // month dropdown
        final Spinner monthDrop = (Spinner) findViewById(R.id.birthMonth);
        String[] monthOptions = new String[]{
                "January", "February", "March", "April", "June", "July", "August", "September", "October", "November", "December"
        };
        ArrayAdapter<String> monthAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, monthOptions);
        monthDrop.setAdapter(monthAdapter);

        // days dropdown

        Spinner dateDrop = (Spinner) findViewById(R.id.birthDate);
        String[] dayOptions = new String[]{
                "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"
        };
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, dayOptions);
        dateDrop.setAdapter(adapter);


        // year dropdown

        Spinner yearDrop = (Spinner) findViewById(R.id.birthYear);
        String[] yearOptions = new String[]{
                "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "20012", "2003", "2004", "2005", "2006"
        };
        ArrayAdapter<String> yearAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, yearOptions);
        yearDrop.setAdapter(yearAdapter);

//        CharSequence[] dateOptions = new CharSequence[] {
//        };

        done.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (first.getText().toString().equals("") || last.getText().toString().equals("") ||
                        email.getText().toString().equals("") || phone.getText().toString().equals("") ||
                        username.getText().toString().equals("") || password.getText().toString().equals("") || first.getText().toString().startsWith(" ") ||
                        last.getText().toString().startsWith(" ") || email.getText().toString().startsWith(" ") || phone.getText().toString().startsWith(" ") ||
                        username.getText().toString().startsWith(" ") || password.getText().toString().startsWith(" ")) {
                    Toast.makeText(getApplicationContext(), "Please fill all blanks", Toast.LENGTH_SHORT).show();
                } else {
                    Intent intent = new Intent(SignupActivity.this, MainActivity.class);
                    startActivity(intent);
                    Toast.makeText(getApplicationContext(), "You have been signed up as " + first.getText().toString() + " " + last.getText().toString() + " (" + username.getText().toString() + ")", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
公共类注册活动扩展了AppCompatActivity{
首先编辑文本;
最后编辑文本;
文本视图出生;
纺纱月;
纺纱机日期;
旋转年;
编辑文本电子邮件;
编辑文本电话;
编辑文本用户名;
编辑文本密码;
按钮完成;
String[]dayOptions=新字符串[]{
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"
};
String[]DayOptions 2=新字符串[]{
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u注册);
first=(EditText)findViewById(R.id.firstName);
last=(EditText)findViewById(R.id.lastName);
出生=(TextView)findViewById(R.id.birthText);
月=(微调器)findViewById(R.id.出生月);
日期=(微调器)findViewById(R.id.出生日期);
年份=(微调器)findViewById(R.id.出生年份);
email=(EditText)findviewbyd(R.id.email);
phone=(EditText)findViewById(R.id.phoneNumber);
username=(EditText)findViewById(R.id.usernamedit);
密码=(EditText)findViewById(R.id.passwordEdit);
完成=(按钮)findViewById(R.id.done);
//月份下拉列表
最终微调器monthDrop=(微调器)findViewById(R.id.生日月);
字符串[]monthOptions=新字符串[]{
“一月”、“二月”、“三月”、“四月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
};
ArrayAdapter monthAdapter=新的ArrayAdapter(这是android.R.layout.simple\u spinner\u dropdown\u项,monthOptions);
monthDrop.setAdapter(MonthDapter);
//天数下拉列表
微调器dateDrop=(微调器)findViewById(R.id.birthDate);
String[]dayOptions=新字符串[]{
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"
};
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u下拉菜单\u项,dayOptions);
setAdapter(适配器);
//年份下拉列表
微调器yearDrop=(微调器)findViewById(R.id.生日);
字符串[]年选项=新字符串[]{
"1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "20012", "2003", "2004", "2005", "2006"
};
ArrayAdapter yearAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u下拉菜单\u项,yearOptions);
yearDrop.setAdapter(yearAdapter);
//CharSequence[]dateOptions=新的CharSequence[]{
//        };
done.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(first.getText().toString().equals(“”)| | last.getText().toString().equals(“”)||
email.getText().toString().equals(“”| | phone.getText().toString().equals(“”)||
username.getText().toString().equals(“”)password.getText().toString().equals(“”)first.getText().toString().startsWith(“”)||
last.getText().toString().startsWith(“”)email.getText().toString().startsWith(“”)phone.getText().toString().startsWith(“”)||
username.getText().toString().startsWith(“”)| | password.getText().toString().startsWith(“”){
Toast.makeText(getApplicationContext(),“请填空”,Toast.LENGTH\u SHORT.show();
}否则{
意向意向=新意向(SignupActivity.this、MainActivity.class);
星触觉(意向);
Toast.makeText(getApplicationContext(),“您已注册为”+first.getText().toString()+“+last.getText().toString()+”(“+username.getText().toString()+”),Toast.LENGTH_SHORT).show();
}
}
});
}
任何帮助都将不胜感激!提前感谢

更新:我尝试了@siva35的答案,但是日期下拉选项都没有了。我的代码是:

            month.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
//                int intPosition = position;
                if(position == 0 || position == 2 || position == 4 || position == 5 || position == 7 || position == 9 ||position == 11) {
//        Spinner date = (Spinner) findViewById(R.id.birthDate);
                    String[] dayOptions = new String[]{
                            "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"
                    };
                    ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(), android.R.layout.simple_spinner_dropdown_item, dayOptions);
                    date.setAdapter(adapter);
                } else if(position == 3 || position == 5 || position == 6 || position == 9 || position == 11 ) {
                    String[] dayOptions = new String[]{
                            "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30"
                    };
                    ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(), android.R.layout.simple_spinner_dropdown_item, dayOptions);
                    date.setAdapter(adapter);
                } else if(position == 1) {
                    String[] dayOptions = new String[]{
                            "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28"
                    };
                    ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplication(), android.R.layout.simple_spinner_dropdown_item, dayOptions);
                    date.setAdapter(adapter);
                } else {
                    Toast.makeText(getApplicationContext(), "Not working", Toast.LENGTH_LONG).show();
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parentView) {
                Toast.makeText(getApplicationContext(), "Please select something", Toast.LENGTH_LONG).show();
            }
        });
month.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图selectedItemView、整型位置、长id){
//int位置=位置;
如果(位置==0 | |位置==2 | |位置==4 | |位置==5 | |位置==7 | |位置==9 | |位置==11){
//微调器日期=(微调器)findViewById(R.id.birthDate);
String[]dayOptions=新字符串[]{
"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"
};
ArrayAdapter=新的ArrayAdapter(getApplication(),android.R.layout.simple\u微调器\u下拉菜单\u项,dayOptions);
日期。设置适配器(适配器);
}否则如果(位置==3 | |位置==5 | |位置==6 | |位置==9 | |位置==11){
String[]dayOptions=新字符串[]{
"1", "2", "3", "4", "5", "6", "7", "8", "9",
month.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {

        // your code here to display date options

    }

    @Override
    public void onNothingSelected(AdapterView<?> parentView) {
        // your code here
    }

})
        month.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

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

            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>(SignupActivity.this, android.R.layout.simple_spinner_item,s);
                date.setAdapter(dayadapter);
            } else if (pos == 1) {
                s = s.subList(0,28);
                ArrayAdapter<String> dayadapter = new  ArrayAdapter<String>(SignupActivity.this, android.R.layout.simple_spinner_item,s);
                date.setAdapter(dayadapter);
            } else {
                s = s.subList(0,30);
                ArrayAdapter<String> dayadapter = new  ArrayAdapter<String>(SignupActivity.this, android.R.layout.simple_spinner_item,s);
                date.setAdapter(dayadapter);
            }
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            Toast.makeText(getApplicationContext(), "Please select something", Toast.LENGTH_SHORT).show();
        }
    });