2012-03-27 63 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