Java 无法在Android中创建和保存客户对象
我正在努力创建一个客户对象并将其保存到Android中的SQLite 这是我的客户课程Java 无法在Android中创建和保存客户对象,java,android,android-sqlite,Java,Android,Android Sqlite,我正在努力创建一个客户对象并将其保存到Android中的SQLite 这是我的客户课程 public class Customer { private int id; private String Name; private String EmailAddress; private String Phone; private Double InitialValue; private Double BalanceOnCard = 0.00;
public class Customer {
private int id;
private String Name;
private String EmailAddress;
private String Phone;
private Double InitialValue;
private Double BalanceOnCard = 0.00;
private String CardUID;
private Date EnrollmentDate = new Date();
private Date LastTransactionDate = new Date();
public Customer(){}
在我的活动中,我创建了如下私有变量
public class EnrollmentActivity extends MenuOnlyActivity {
private CustomerSQLiteHelper db;
private final String TAG = "Customer_Add";
Button submitButton;
Button cancelButton;
private EditText customerNameEditText;
private EditText customerEmailEditText;
private EditText customerPhoneEditText;
private EditText valueToAddEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_enrollment);
submitButton = (Button) findViewById(R.id.buttonEnrollment);
cancelButton = (Button) findViewById(R.id.CancelEnrollment);
customerNameEditText = (EditText) findViewById(R.id.editTextCustomerName);
customerEmailEditText = (EditText) findViewById(R.id.editTextCustomerEmailAddress);
customerPhoneEditText = (EditText) findViewById(R.id.editTextBusinessPhoneNumber);
valueToAddEditText = (EditText) findViewById(R.id.editTextValueToAdd);
这是SubmitButton侦听器,它在这个代码块中失败了,它没有达到调用DatabaseHelper来保存客户对象的目的,它在创建一个空白客户对象并开始设置实例变量之后就在某个地方失败了
Log.i(TAG, "Entering Submit Button event");
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (customerNameEditText.getText().length() == 0) {
Toast.makeText(EnrollmentActivity.this, "Enter Customer's name", Toast.LENGTH_SHORT).show();
customerNameEditText.requestFocus();
return;
}
Log.i(TAG, "Create new customer");
//Create new customer object
Customer enteredCustomer = new Customer();
Log.i(TAG, "Created blank customer object");
Log.i(TAG, "populate the new customer object");
//Populate the values of the new object with the values entered in the screen
enteredCustomer.setId(1);
enteredCustomer.setName(customerNameEditText.getText().toString());
enteredCustomer.setEmailAddress(customerEmailEditText.getText().toString());
enteredCustomer.setPhone(customerPhoneEditText.getText().toString());
String enteredValueSting = valueToAddEditText.getText().toString();
double storedValue = Double.parseDouble(enteredValueSting); //convert String to Double
enteredCustomer.setInitialValue(storedValue);
enteredCustomer.setCardUID("ABC123");
Log.i(TAG, "Creating DB Instance");
db = new CustomerSQLiteHelper(EnrollmentActivity.this);
Log.i(TAG, "Created Database instance");
if (db.create(enteredCustomer) != -1) {
Toast.makeText(EnrollmentActivity.this,"Add Customer Successful",Toast.LENGTH_SHORT).show();
customerNameEditText.getText().clear();
customerEmailEditText.getText().clear();
customerPhoneEditText.getText().clear();
valueToAddEditText.getText().clear();
} else {
Toast.makeText(EnrollmentActivity.this, "Add Customer failed", Toast.LENGTH_SHORT).show();
}
}
});
错误消息到处都是,它总是给出一个toast。不幸的是,项目名称已停止。当前控制台错误为n已建立的连接已被主机中的软件中止
java.io.IOException:主机中的软件中止了已建立的连接。我已多次重新启动Eclipse和Emulator。任何帮助/建议都将不胜感激。在做了更多的头发拉扯之后,我做了两件事来隔离和解决这个问题,首先我创建了一个默认构造函数,并将参数初始化为合理的默认值,字符串为null,int为0,然后我重命名了所有XML ID以匹配我在活动中创建的Java变量。现在,我可以创建我的客户对象的实例并将其持久化到数据库。请参阅日志以了解异常堆栈跟踪,并将其包含在您的问题中。