2015-08-01 2 views
0

Я не могу отправить строку в базу данных с помощью намерений. Я пытался сделать этопроблема при отправке строки в базу данных с использованием намерений

public void onCreate(SQLiteDatabase db) { 
     String sql =  "create table "+ DATABASE_TABLE + " (" 
       + KEY_ROW_ID + " integer primary key autoincrement , " 
       + NOTE + " text ) " ; 

     db.execSQL(sql); 

     String x=getIntent().getExtras().getString("message"); 

     sql = "insert into " + DATABASE_TABLE + " (" + NOTE+ ") " 
       + " values (x)"; 
     db.execSQL(sql); 

    } 

, но он продолжает говорить мне, что «getIntent()» не может быть решена, и я импортировал пристальный класс уже кто-нибудь знает, как передать строку в базу данных с помощью намерения? благодарит заранее.

+1

Там действительно хороший раздел о сохранении данных в базах данных в разработчиков, которые вы действительно должны проверить bro. – freddieptf

ответ

0

Метод getIntent() определяется в Activity, а не в SQLiteOpenHelper. SQLiteOpenHelper имеет метод getWritableDatabase(), который вы можете использовать для получения ссылки на вашу базу данных.

Например, вы можете настроить свою базу данных при запуске Activity, получить ссылку на базу данных, используя getWritableDatabase(), а затем написать ее с использованием данных с вашего намерения.

+0

благодарит за вашу помощь, но не могли бы вы показать мне это в коде, пожалуйста? –

0

Мне кажется, что вы пытаетесь вставить запись в базу данных. Тогда я не понимаю, почему вы хотите использовать намерение? Можете ли вы пояснить, что вы пытаетесь с этим сделать?

Самый простой способ, чтобы вставить запись в базу данных будет создать имя метода вставки (String сообщение) в SQLiteOpenHelper что-то по этой линии:

public long insert(String message) { 
    SQLiteDatabase db=getWritableDatabase(); 
    ContentValues cv=new ContentValues(); 
    cv.put(COLUMN_NAME,message); 
    return db.insert(TABLE_NAME,null,cv); 
+0

У меня есть textField в действии, и я хочу сохранить его в базе данных (которая находится в другом действии), поэтому мы должны отправлять строки между действиями с использованием намерений. поэтому я использовал намерение. –

+0

Было бы лучше, если бы у вас был отдельный класс для хранения базы данных. Что-то вроде: public class MyDatabaseHelper расширяет SQLiteOpenHelper { // Ваш код базы данных здесь } Затем в действии вы можете вызвать метод DatabaseHelper для вставки (String message), как указано выше. Для получения дополнительной информации, пожалуйста, предпочитайте модель MVC. –

Смежные вопросы