带适配器的Android Spinner强制关闭?
我有登记表,它有两个EditText和一个微调器,带有性别选择适配器和数组中的值,当我单击“登记”按钮并选择性别时,它会成功运行,但当我没有选择性别并单击“登记”按钮时,它会强制关闭吗 这是我的完整代码 主要活动带适配器的Android Spinner强制关闭?,android,android-spinner,Android,Android Spinner,我有登记表,它有两个EditText和一个微调器,带有性别选择适配器和数组中的值,当我单击“登记”按钮并选择性别时,它会成功运行,但当我没有选择性别并单击“登记”按钮时,它会强制关闭吗 这是我的完整代码 主要活动 EditText Fullname, Email; Spinner GenderSpinner; Button btnReg; @Override public void onCreate(Bundle savedInstanceState) { super.onCr
EditText Fullname, Email;
Spinner GenderSpinner;
Button btnReg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Importing all assets like buttons, text fields
Fullname = (EditText) findViewById(R.id.full_name);
Email = (EditText) findViewById(R.id.Email);
// Gender = (EditText) findViewById(R.id.Gender);
GenderSpinner = (Spinner) findViewById(R.id.Gender);
ArrayAdapter<CharSequence> GenderAdapter = ArrayAdapter
.createFromResource(this, R.array.sex,
android.R.layout.simple_spinner_item);
GenderAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
GenderSpinner.setPrompt("SELECT YOUR GENDER");
GenderSpinner.setAdapter(new NothingSelectedSpinnerAdapter(
GenderAdapter, R.layout.gender_nothing_selected, MainActivity.this));
btnReg = (Button) findViewById(R.id.btnReg);
btnReg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// Read EditText dat
String fullname = Fullname.getText().toString();
String email = Email.getText().toString();
String gender = GenderSpinner.getSelectedItem().toString();
}
});
}
}看起来您在这里得到了
null
String gender = GenderSpinner.getSelectedItem().toString();
由于未选择任何内容,因此当您尝试调用toString()
时,GenderSpinner.geselecetedem()
为null
。您可以将所选项目设置为默认项目,或者如果您想强制用户选择项目,则在运行此代码时,您可以在此处检查null
,如果是,则向用户显示消息以选择性别
如果您使用第二个选项,那么您可以考虑使用<代码> RadioButtons <代码>,因为用户将更自然,或者使用文本提示作为<代码> SpNeN/COD>的默认值,并带有“请选择性别”< /P>之类的信息。
String gender = GenderSpinner.getSelectedItem().toString();