2012-03-27 49 views
2

我试图插入数据到SQLite数据库使用获取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); – 2012-03-27 02:59:22

回答

3

嗯,你需要实际使用你所知道的insertTitle方法......它不会坐在那里做任何事情。它看起来像你之前尝试过,但在错误的地方,你从EditText字段设置字符串值之前。

后你获得最后的EditText价值和你db.close(前),插入以下内容:

db.insertTitle(IsbnValue, TitleValue, PublisherValue);

+0

非常感谢,我通过做你说的来解决它:)。我是Android编程新手。 – 2012-03-27 05:09:59

相关问题