首页 > 解决方案 > 如何为字符串做增量?我把两个字符串放在一起但我只想增加 lastTxnNo 。安卓工作室

问题描述

txn.getUnit_Code()是“A001”并且txn.getLastTxnNo()是“0001”。两者都是字符串。每当我保存记录时,我想增加最后一个 txn 编号。但是因为这是字符串,所以我把+1,它会变成“A00100011”而不是“A0010002”。如果我想让“A0010001”变成“A0010002”,该怎么做?

String txnNo = txn.getUnit_Code() + txn.getLastTxnNo() + 1;
        D_Txn.setText(txnNo);

这是按钮保存。所以我把上面的代码变成了“A0010001”,但是我点击按钮后不知道如何制作,下一个txnNo变成“A0010002”

Model txn = new Model();// initialize your model class first
                BigDecimal paidAmt = new BigDecimal(D_Amount.getText().toString()).setScale(2, RoundingMode.HALF_UP);
                txn.setName(D_Name.getText().toString());
                txn.setTxnNo(D_Txn.getText().toString());
                txn.setTxnDate(Select_Date.getText().toString());
                txn.setAmount(paidAmt);
                txn.setDescription1(D_Description.getSelectedItem().toString());
                txn.setDescription2(Ds_Description.getText().toString());

                try {

                    SQLiteDatabase db = mSQLiteHelper.getWritableDatabase();
                    ContentValues cv = new ContentValues();
                    cv.put("name", txn.getName());
                    cv.put("TxnNo", txn.getTxnNo());
                    cv.put("TxnDate", txn.getTxnDate());
                    cv.put("Amount", txn.getAmount().toPlainString());
                    cv.put("Description1", txn.getDescription1());
                    cv.put("Description2", txn.getDescription2());
                    db.insert("Donation_Details", null, cv);
                    db.close();

                    Toast.makeText(Donation_Page.this, "Add successfully", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    e.printStackTrace();
                }

我可以帮忙吗...?提前致谢。

这是我的更新

int increaseNumber = 1;我在页面上初始化了一个,increaseNumber++然后单击按钮。但它不起作用。为什么?

Db_Save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Model txn = new Model();// initialize your model class first
                BigDecimal paidAmt = new BigDecimal(D_Amount.getText().toString()).setScale(2, RoundingMode.HALF_UP);
                txn.setName(D_Name.getText().toString());
                txn.setTxnNo(D_Txn.getText().toString());
                txn.setTxnDate(Select_Date.getText().toString());
                txn.setAmount(paidAmt);
                txn.setDescription1(D_Description.getSelectedItem().toString());
                txn.setDescription2(Ds_Description.getText().toString());

                try {

                    SQLiteDatabase db = mSQLiteHelper.getWritableDatabase();
                    ContentValues cv = new ContentValues();
                    cv.put("name", txn.getName());
                    cv.put("TxnNo", txn.getTxnNo());
                    cv.put("TxnDate", txn.getTxnDate());
                    cv.put("Amount", txn.getAmount().toPlainString());
                    cv.put("Description1", txn.getDescription1());
                    cv.put("Description2", txn.getDescription2());
                    db.insert("Donation_Details", null, cv);
                    db.close();

                    Toast.makeText(Donation_Page.this, "Add successfully", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                increaseNumber++;
            }
        });

这是我设置的格式

private void populate_TxnNo() {

    int lastNumber = Integer.valueOf(txn.getLastTxnNo());
    lastNumber = lastNumber + increaseNumber ;
    String stringLast = String.format("%04d",lastNumber);
    String txnNo = txn.getUnit_Code() + stringLast;
    D_Txn.setText(txnNo);


}

标签: androidandroid-sqlite

解决方案


您不能为字符串提供 int 增量。你可以做的是:

String numberPrefix = txn.getUnit_Code(); //String = A001
int numberSufix = 1;

String sufixAndPrefix = numberPrefix + "000" + numberSufix;

//OnClickListener
numberSufix++;
D_Txn.setText(sufixAndPrefix);

推荐阅读