android - 如何为字符串做增量?我把两个字符串放在一起但我只想增加 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);
}
解决方案
您不能为字符串提供 int 增量。你可以做的是:
String numberPrefix = txn.getUnit_Code(); //String = A001
int numberSufix = 1;
String sufixAndPrefix = numberPrefix + "000" + numberSufix;
//OnClickListener
numberSufix++;
D_Txn.setText(sufixAndPrefix);
推荐阅读
- java - setArguments 和 getArguments 返回空字符串
- boost - Lanelet2:ImportError:/usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0:未定义符号:_Py_tracemalloc_config
- next.js - .map 不是 Vercel 部署的函数
- flutter - 如何在颤动中更改按钮颜色
- hive - HIVEQL 和 Talend 中子查询之间的 NVL
- apache - htaccess 重写任何文件夹但不是任何文件
- c - C sscanf("%hhx") 读取一个 unsigned int 而不是 unsigned char
- npm - Should I duplicate "peerDependencies" in "dependencies" field of "package.json"?
- docker - 从 traefik 到 Vultr 的 DNS 挑战
- javascript - 两个按钮中的一个启动滚动,但它们都应该