Android:为什么RadioButton返回空值?
我创建了一个RadioGroup以启用性别选择 下面是XML文件中声明RadioGroup和RadioButtons的部分Android:为什么RadioButton返回空值?,android,sqlite,radio-button,android-radiogroup,Android,Sqlite,Radio Button,Android Radiogroup,我创建了一个RadioGroup以启用性别选择 下面是XML文件中声明RadioGroup和RadioButtons的部分 <RadioGroup android:id="@+id/rgGenderGroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:orie
<RadioGroup
android:id="@+id/rgGenderGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rbMale"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="@string/m"
android:textColor="@color/default_text"/>
<RadioButton
android:id="@+id/rbFemale"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="@string/f"
android:textColor="@color/default_text"/>
</RadioGroup>
但是,当我试图用下面的查询将性别值插入数据库时
private final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ( " +
COLUMN_NAME + " TEXT NOT NULL, " + COLUMN_AGE + " INT, " + COLUMN_NATIONALITY + " TEXT NOT NULL, " +
COLUMN_GENDER + " CHAR(1) NOT NULL, " + COLUMN_CREATED_AT + " TEXT NOT NULL);";
它失败,显示以下错误消息
08-10 23:46:52.356 21666-21890/com.marshall.sortingtester E/SQLiteDatabase﹕ Error inserting Name=clara Age=0 Nationality=Angola Created_At=2015/08/10 23:46:52 Gender=null
android.database.sqlite.SQLiteConstraintException: People.Gender may not be NULL (code 19)
为什么即使在正确检查按钮后性别值仍返回null
编辑:这里是insertData方法
public void insertData(Person person) {
ContentValues values = new ContentValues();
values.put(SQLiteHandler.COLUMN_NAME, person.getName());
values.put(SQLiteHandler.COLUMN_AGE, person.getAge());
values.put(SQLiteHandler.COLUMN_NATIONALITY, person.getNationality());
values.put(SQLiteHandler.COLUMN_GENDER, person.getGender());
values.put(SQLiteHandler.COLUMN_CREATED_AT, person.getCreated_at());
db.insert(SQLiteHandler.TABLE_NAME, null, values);
}
你能出示你的插入代码吗?@karaokyo我上传了代码。看看,这相当简单。谢谢你的回答!
public void insertData(Person person) {
ContentValues values = new ContentValues();
values.put(SQLiteHandler.COLUMN_NAME, person.getName());
values.put(SQLiteHandler.COLUMN_AGE, person.getAge());
values.put(SQLiteHandler.COLUMN_NATIONALITY, person.getNationality());
values.put(SQLiteHandler.COLUMN_GENDER, person.getGender());
values.put(SQLiteHandler.COLUMN_CREATED_AT, person.getCreated_at());
db.insert(SQLiteHandler.TABLE_NAME, null, values);
}
RadioGroup rgGenderGroup= (RadioGroup) findViewById(R.id.rgGenderGroup);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// checkedId is the RadioButton selected
switch(checkedId) {
case(R.id.rbMale):
person.setGender("M");
break;
case(R.id.rbFemale):
person.setGender("F");
break;
}
}
});