【发布时间】:2015-02-16 21:36:25
【问题描述】:
我有一个表单,它询问姓名、性别等值。这些值存储在一个表中,其中包含用户未输入的主键字段 ID。每次使用 SharedPreferences 保存新记录时,我都必须通过增加其值来输入它。我该怎么做?
这是我的类文件:
saveBtn = (Button) view.findViewById(R.id.save);
saveBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String name = nameEdt.getText().toString().trim();
String trainingTypes = trainingTypesSpn.toString().trim();
String trainerProfile = trainerProfileSpn.toString().trim();
String description = descriptionEdt.toString().trim();
String plannedBudget = plannedBudgetNp.toString().trim();
String startDt = startDtEdt.toString().trim();
String endDt = endDtEdt.toString().trim();
TrainingDetailsDTO dto = new TrainingDetailsDTO();
dto.setName(name);
dto.setTrainingTypes(trainingTypes);
dto.setTrainerProfile(trainerProfile);
dto.setDescription(description);
dto.setPlannedBudget(plannedBudget);
dto.setStartDt(startDt);
dto.setEndDt(endDt);
SQLiteDatabase database = DBHandler.getInstance(mActivity).getDBObject(1);
boolean isInsert = TrainingDetailsDAO.getInstance().insert(dto, database);
if (isInsert)
{
Toast.makeText(mActivity, "Inserted Successfully", Toast.LENGTH_SHORT).show();
mActivity.popFragments();
mActivity.pushFragments(Constants.TAB_HOUSE, new HouseConstructionTrack(), false, false);
}
else
{
Toast.makeText(mActivity, "Insert Problem", Toast.LENGTH_SHORT).show();
}
mActivity.popFragments();
}
});
这是我在 DAO 类中的插入方法:
public boolean insert(DTO dtoObject, SQLiteDatabase dbObject)
{
TrainingDetailsDTO dto = (TrainingDetailsDTO) dtoObject;
ContentValues cValues = new ContentValues();
cValues.put("TrainingDetailsId", "TR001");
cValues.put("name" , dto.getName());
cValues.put("trainingTypes" , dto.getTrainingTypes());
cValues.put("trainerProfile", dto.getTrainerProfile());
cValues.put("description" , dto.getDescription());
cValues.put("plannedBudget" , dto.getPlannedBudget());
cValues.put("startDt" , dto.getStartDt());
cValues.put("endDt" , dto.getEndDt());
dbObject.insert("TRAINING_DETAILS", null, cValues);
return false;
}
在这里,我只能为第一条记录提供 ID。如何使用 SharedPreferences 生成后续 Id?
【问题讨论】:
-
这会帮助你...link检查这个..
-
实际上,我的 Id 的格式为 TR001、TR002、TR003 等。当添加新记录时,它应该递增到 TR004 并与其他值一起存储到数据库中。我必须在这里使用 SharedPreferences。但是,我不知道怎么做。
-
那么您应该仅在将数据提交到数据库时根据您的需要增加您的 id 值并保存它..
-
考虑将数据库密钥存储在数据库本身中,并在那里使用常规的
INTEGER PRIMARY KEY自动生成。如果您出于其他目的需要特殊格式,请在数据库之外进行格式化。