0
所以,這裏有個問題,我有兩個類,Class Title是一個人的信息,即姓名,地址,網站,電話等,當人選擇保存按鈕時,他所有的個人數據保存在SQlite中,並且他被移至具有編輯文本視圖的Class Newscene,其中人員編寫故事。當他寫這個故事的時候,我希望它能夠保存在最近保存的標題中。但是在做它,一旦程序崩潰,給我error.here是我的標題類的從我正在將一個人的細節到數據庫的代碼在android中更新一些數據庫列SQlite
EditText title=(EditText)findViewById(R.id.editText1);
EditText author=(EditText)findViewById(R.id.editText2);
EditText company=(EditText)findViewById(R.id.editText3);
EditText address=(EditText)findViewById(R.id.editText4);
EditText email=(EditText)findViewById(R.id.editText5);
EditText website=(EditText)findViewById(R.id.editText6);
EditText phone=(EditText)findViewById(R.id.editText7);
title1=title.getText().toString();
author1=author.getText().toString();
company1=company.getText().toString();
address1=address.getText().toString();
email1=email.getText().toString();
website1=website.getText().toString();
phone1=phone.getText().toString();
DatabaseHandler db = new DatabaseHandler(this);
/**
* CRUD Operations
* */
// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
db.addContact(new Contact(0, title1, author1,company1, address1, email1, website1, phone1, script1));
// Reading all contacts
Log.d("Reading: ", "Reading all contacts..");
List<Contact> contacts = db.getAllContacts();
for (Contact cn : contacts) {
String log = "Id: "+cn.getID()+" ,Name: " + cn.get_name() + " ,Author: " + cn.get_author() + " ,company: " + cn.get_company() + " ,address: " + cn.get_address()
+ " ,email: " + cn.get_email() + " ,Website: " + cn.get_website() + " ,Phone: " + cn.getPhoneNumber() + " ,Script: " + cn.getscript();
// Writing Contacts to log
Log.d("Name: ", log);
name_title=cn.getName().toString();
}
//Passing id through intent
Intent i = new Intent(Title.this,Newscene.class);
i.putExtra("EXTRA_ID", id);
startActivity(i);
這是我得到它Newscene類
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_newscene);
Intent i = getIntent();
idval = i.getStringExtra("EXTRA_ID").toString();
// i am converting this idval string to integer below
}
然後在同一個類中,一切都一個人在它
String strSaveindb = previous + scene1 + ending;
立即保存的EditText寫,然後我在我的聯繫人類型設置這個和更新d atabase像這樣的(這在Newscene活動正在做的)
cn.setscript(strSaveindb);
db.updateContactscript(db.getContact(1));
現在在我的數據庫處理器類我有updatecontact功能和updatecontactscript功能,下面是我的數據庫處理程序類的代碼
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_NAME + " TEXT,"
+ KEY_AUTHOR + " TEXT,"
+ KEY_COMPANY + " TEXT,"
+ KEY_ADDRESS + " TEXT,"
+ KEY_EMAIL + " TEXT,"
+ KEY_WEBSITE + " TEXT,"
+ KEY_PH_NO + " TEXT,"
+ KEY_SCRIPT + "TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
這是添加聯繫人功能
void addContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName()); // Contact Name
values.put(KEY_AUTHOR, contact.getPhoneNumber());
values.put(KEY_COMPANY, contact.getPhoneNumber());
values.put(KEY_ADDRESS, contact.getPhoneNumber());
values.put(KEY_EMAIL, contact.getPhoneNumber());
values.put(KEY_WEBSITE, contact.getPhoneNumber());
values.put(KEY_PH_NO, contact.getPhoneNumber());
values.put(KEY_SCRIPT, contact.getscript());// Contact Phone
// Inserting Row
db.insert(TABLE_CONTACTS, null, values);
db.close(); // Closing database connection
}
這是獲得conatct功能
Contact getContact(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_AUTHOR, KEY_COMPANY, KEY_ADDRESS, KEY_EMAIL, KEY_WEBSITE, KEY_PH_NO , KEY_SCRIPT }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6),cursor.getString(7),cursor.getString(8));
// return contact
return contact;
}
而這些更新聯繫,並只更新腳本
// Updating single contact
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_AUTHOR, contact.get_author());
values.put(KEY_COMPANY, contact.get_company());
values.put(KEY_ADDRESS, contact.get_address());
values.put(KEY_EMAIL, contact.get_email());
values.put(KEY_WEBSITE, contact.get_website());
values.put(KEY_PH_NO, contact.getPhoneNumber());
values.put(KEY_SCRIPT, contact.getscript());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}
//UPDATING SCRIPT
public int updateContactscript(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_SCRIPT, contact.getscript());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}
如何更新腳本盈最近已經將接觸ID的功能。我在這裏卡住現在看兩天:(
你錯過了'「TEXT」的空間'我想你是我第五次今天看。 – njzk2
「TEXT」??在哪裏? –