Java Android循环插入SQL语句

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);

我正在尝试在Android中重复插入SQL语句。下面是填充listview的代码:

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?日志中有错误吗?是否没有传递给插入的空/无效值?