2012-03-27 3 views
2

Я пытаюсь вставить данные в базу данных SQLite, используя get EditText, но я не могу найти решение для этого. До сих пор я не могу понять, как работает EditText. Я попытался использовать одно из решений здесь, но я не могу понять, как это работает. Inserting EditText & Spinner data into SQLite.Как вставить данные в базу данных с помощью EditText?

Вот мой код.

DatabaseActivity.java

public class DatabaseActivity extends Activity { 

DBAdapter db = new DBAdapter(this); 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button submitbutton = (Button) findViewById(R.id.submitbutton); 

    submitbutton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      db.open(); 
      //long id; 
      //id = db.insertTitle("isbn", "title", "publisher"); 

      EditText editTextIsbn = (EditText)findViewById(R.id.EditTextIsbn); 
      String IsbnValue = editTextIsbn.getText().toString(); 

      EditText editTextTitle = (EditText)findViewById(R.id.EditTextTitle); 
      String TitleValue = editTextTitle.getText().toString(); 

      EditText editTextPublisher = (EditText)findViewById(R.id.EditTextPublisher); 
      String PublisherValue = editTextPublisher.getText().toString(); 
      db.close(); 
     } 
     });   
} 
} 

DBAdapter.java

public class DBAdapter 
{ 

    public static final String KEY_ROWID = "_id"; 
    public static final String KEY_ISBN = "isbn"; 
    public static final String KEY_TITLE = "title"; 
    public static final String KEY_PUBLISHER = "publisher";  
    private static final String TAG = "DBAdapter"; 
    private static final String DATABASE_NAME = "books"; 
    private static final String DATABASE_TABLE = "titles"; 
    private static final int DATABASE_VERSION = 1; 

    private static final String DATABASE_CREATE = 
     "create table titles (_id integer primary key autoincrement, " 
     + "isbn text not null, title text not null, " 
     + "publisher text not null);"; 



    private final Context context; 

    private DatabaseHelper DBHelper; 
    private SQLiteDatabase db; 

    public DBAdapter(Context ctx) 
    { 
     this.context = ctx; 
     DBHelper = new DatabaseHelper(context); 
    } 


    //---insert a title into the database--- 
     public long insertTitle(String isbn, String title, String publisher) 
     { 
      ContentValues initialValues = new ContentValues(); 
      initialValues.put(KEY_ISBN, isbn); 
      initialValues.put(KEY_TITLE, title); 
      initialValues.put(KEY_PUBLISHER, publisher); 
      return db.insert(DATABASE_TABLE, null, initialValues); 
     } 

Спасибо заранее.

+0

вы вставляете значения ... жёстко прописанные попробовать db.insertTitle (IsbnValue, TitleValue, PublisherValue); –

ответ

3

Умм, вам действительно нужно использовать свой метод insertTitle, который вы знаете ... он ничего не сделает, просто сидит там. Похоже, вы пробовали его раньше, но не в том месте, прежде чем устанавливать строковые значения из полей EditText.

После того, как вы получите последнее значение EditText и перед вашим db.close(), вставьте следующее:

db.insertTitle(IsbnValue, TitleValue, PublisherValue);

+0

Большое спасибо, я решил это, выполнив то, что вы сказали :). Я новичок в Android-программировании. –