ListItem을 클릭하면 4 개의 EditText 필드가있는 사용자 정의 대화 상자가 열립니다. 필드는 클릭 된 행에 따라 현재 데이터로 설정됩니다. 대화 상자의 목적은 사용자가 데이터를 업데이트 할 수 있도록하는 것입니다 (금융 응용 프로그램 임). 사용자가 대화 상자에서 "제출"을 클릭하면 실제로 업데이트를 적용하는 데 문제가 있습니다. 앱을 실행할 때 오류가 없습니다. 여기에 온 클릭 방법 :SQLite 업데이트 안드로이드 적용 안 함
protected void onListItemClick(ListView l, View v, int position, long id) {
List<Debt> values = datasource.getAllDebt();
Debt item = values.get(position);
final long boxId = item.getId();
// final String BoxId = String.valueOf(boxId);
final String BoxName = item.getName();
final String BoxBalance = item.getBalance();
final String BoxApr = item.getApr();
final String BoxPayment = item.getPayment();
// set up dialog
final Dialog dialog = new Dialog(manageDebts.this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Edit Debt Details");
dialog.setCancelable(true);
// set up text
EditText et1 = (EditText) dialog.findViewById(R.id.editText1);
EditText et2 = (EditText) dialog.findViewById(R.id.editText2);
EditText et3 = (EditText) dialog.findViewById(R.id.editText3);
EditText et4 = (EditText) dialog.findViewById(R.id.editText4);
et1.setText(BoxName);
et2.setText(BoxBalance);
et3.setText(BoxApr);
et4.setText(BoxPayment);
// set up button
Button button = (Button) dialog.findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
datasource.updateDebt(boxId, BoxName, BoxBalance, BoxApr,
BoxPayment);
dialog.dismiss();
}
});
dialog.show();
}
내 데이터베이스 헬퍼 클래스의 업데이트 방법은 여기에 표시됩니다 :
public boolean updateDebt(long updateId, String debt_name, String debt_total, String apr, String payment)
{
ContentValues values = new ContentValues();
values.put(MySQLiteHelper.COLUMN_ID, updateId);
values.put(MySQLiteHelper.COLUMN_DEBT_NAME, debt_name);
values.put(MySQLiteHelper.COLUMN_DEBT_TOTAL, debt_total);
values.put(MySQLiteHelper.COLUMN_APR, apr);
values.put(MySQLiteHelper.COLUMN_PAYMENT, payment);
return database.update(MySQLiteHelper.TABLE_DEBT, values, MySQLiteHelper.COLUMN_ID + " = " + updateId, null) > 0;
}
나는 COLUMN_ID과을 UpdateID리스트 뷰에서 올바른 행을 가리키는 것을 확인했습니다 및 SQL 데이터베이스.
내가보기 싫은 사람이 있습니까?
datasource.getAllDebt(); 암호. –
방금 전 내 SQL 코드가 대부분있는 전체 DebtDataSource 클래스를 추가했습니다. – KickingLettuce