Java Android循环插入SQL语句
我正在尝试在Android中重复插入SQL语句。下面是填充listview的代码:Java Android循环插入SQL语句,java,android,sql,sqlite,Java,Android,Sql,Sqlite,我正在尝试在Android中重复插入SQL语句。下面是填充listview的代码: public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.recur_listview_row, null);
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.recur_listview_row,
null);
viewHolder = new ViewHolder();
viewHolder.txt_ddate = (TextView) convertView
.findViewById(R.id.txtDisplayRecurDate);
viewHolder.txt_damount = (TextView) convertView
.findViewById(R.id.txtDisplayRecurAmount);
viewHolder.txt_dfrequency = (TextView) convertView
.findViewById(R.id.txtDisplayFrequency);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
// Format and calculate the next payment date based on frequency
try {
String dateStr = _recurlist.get(position)
.getRecurringStartDate();
String frequencyStr = _recurlist.get(position).getFrequency();
Calendar cal = Calendar.getInstance();
cal.setTime(dateFormat.parse(dateStr));
if (frequencyStr.equals("Daily")) {
cal.add(Calendar.DAY_OF_MONTH, 1);
viewHolder.txt_ddate.setText("Next Payment On: "
+ dateFormat.format(cal.getTimeInMillis()));
cal.add(Calendar.DAY_OF_MONTH, -1);
} else if (frequencyStr.equals("Weekly")) {
cal.add(Calendar.WEEK_OF_YEAR, 1);
viewHolder.txt_ddate.setText("Next Payment On: "
+ dateFormat.format(cal.getTimeInMillis()));
cal.add(Calendar.WEEK_OF_YEAR, -1);
}
} catch (ParseException e) {
e.printStackTrace();
}
viewHolder.txt_dfrequency.setText(_recurlist.get(position)
.getFrequency().trim());
// Formatting amount into currency format
float amount = _recurlist.get(position).getRecurringAmount();
if (_recurlist.get(position).getRecurringType().equals("W")) {
viewHolder.txt_damount.setTextColor(Color.rgb(180, 4, 4));
viewHolder.txt_damount.setText("Debit $ " + amount);
} else if (_recurlist.get(position).getRecurringType().equals("D")) {
viewHolder.txt_damount.setTextColor(Color.rgb(8, 138, 8));
viewHolder.txt_damount.setText("Credit $ " + amount);
}
String date = dateFormat.format(new Date());
if (date.equals(
viewHolder.txt_ddate.getText())) {
if(currentDate.equals(viewHolder.txt_ddate.getText())){
DatabaseAdapter mDbHelper = new DatabaseAdapter(Recurring.this);
mDbHelper.createDatabase();
mDbHelper.open();
TransactionRecModel trm = new TransactionRecModel();
trm.setDate(txtRecurDate.getText().toString());
trm.setTransDescription(txtRecurDesc.getText().toString());
if (radioWithdraw.isChecked()) {
trm.setType("W");
} else if (radioDeposit.isChecked()) {
trm.setType("D");
}
trm.setAmount(Float.parseFloat(txtRecurAmount.getText().toString()));
trm.setCategory(categoryID);
TransactionRecController trc = new TransactionRecController(
mDbHelper.open());
if (trc.addTransactionRec(trm)) {
Toast.makeText(Recurring.this,
"Transaction Record Added successfully.",
Toast.LENGTH_LONG).show();
mDbHelper.close();
} else {
Toast.makeText(Recurring.this,
"Error occured, please try again.", Toast.LENGTH_LONG)
.show();
}
}
return convertView;
}
我已经从数据库中检索了日期,然后根据频率执行一些函数以获取下一个付款日期。所以我想做的是,当下一个付款日期是今天时,它应该自动执行insert SQL语句。但是,从我的代码来看,它既不执行insert SQL,也不显示错误
我不知道为什么会这样。我还想知道我需要一个计时器吗
提前感谢。您将日期与文本值进行比较,这将是false currentDate.equalsviewHolder.txt\u ddate.getText您必须将两个值转换为相同的符号或类型 您可以将mDay+/+mMonth+/+mYear与viewHolder.txt\u ddate.getText进行比较
是的,您应该看一下,因为您的用户必须看到屏幕,否则就会发生这种情况。不,即使在我将currentDate的变量类型更改为string之后,它仍然不起作用。但我的一个不需要报警或通知,只是当日期匹配时,它将插入记录u是否将两者转换为字符串?你能检查两个字符串值,看看格式是否合适吗?让我在调试模式下运行,检查一段时间,我已经设法获得了相同的日期格式,但它仍然不执行insert SQL语句。你知道吗?没有括号丢失?我已经将代码复制到eclipse,但似乎没有达到平衡。代码是否运行到addTransactionRec?日志中有错误吗?是否没有传递给插入的空/无效值?