我正在Android Studio中製作一個應用程序,該應用程序允許用戶將項目添加到購物清單。我無法實現數據庫的添加功能。我希望用戶能夠在兩個編輯文本框中輸入項目名稱和數量,然後將這些信息存儲在我的數據庫中。設置數據庫並嘗試實現添加功能時,我使用thesetutorials。如何解決android.support.v7.widget.AppCompatEditText無法轉換爲java.lang.CharSequence
目前,當我運行代碼時,它會在我的設備上顯示應用程序;但是當我點擊一個按鈕,去到這個活動所代表的頁面,我得到這個錯誤和應用程序崩潰:
android.support.v7.widget.AppCompatEditText不能轉換到java.lang.CharSequence中
這是我在活動代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
id = getIntent().getIntExtra(MainActivity.KEY_ID, 0);
setContentView(R.layout.activity_add);
EditText addAnItem = (EditText) findViewById(R.id.add_item);
EditText addQuantity = (EditText) findViewById(R.id.add_quantity);
saveButton = (Button) findViewById(R.id.saveButton);
saveButton.setOnClickListener(this);
DBHandler db = new DBHandler(this);
addAnItem.setText((CharSequence)addAnItem);
addAnItem.setFocusable(false);
addAnItem.setClickable(false);
addQuantity.setText((CharSequence)addQuantity);
addQuantity.setFocusable(false);
addQuantity.setClickable(false);
}
public void onClick(View view) {
String itemName = addAnItem.getText().toString();
String itemQuantity = addQuantity.getText().toString();
db.addItem(new Item(id, itemName, itemQuantity));
}
數據庫中添加功能:
public void addItem(Item item) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, item.getItemName());
values.put(KEY_QUANTITY, item.getItemQuantity());
db.insert(TABLE_LITEMS, null, values);
db.close();
}
和項目類:
public class Item {
private int id;
private String itemName;
private String itemQuantity;
public Item(){
}
public Item(int id,String itemName,String itemQuantity){
this.id=id;
this.itemName=itemName;
this.itemQuantity=itemQuantity;
}
public void setId(int id) {
this.id = id;
}
public void setItemName(String itemName){
this.itemName = itemName;
}
public void setItemQuantity(String itemQuantity){
this.itemQuantity = itemQuantity;
}
public int getId() {
return id;
}
public String getItemName(){
return itemName;
}
public String getItemQuantity(){
return itemQuantity;
}
}
我以前在活動的CharSequence投,否則它給了我
無法解析法的setText(android.widget.EditText)
我無法找到解決該錯誤的另一種方法。
爲了將用戶提供的項目添加到我的數據庫中,可以對代碼進行哪些修改?
好吧,現在我可以打開頁面,但是由於某種原因,我的EditText不會顯示出來。 –
我真的不明白你在這裏試圖實現什麼!但這是從'edittext'獲取文本的方式 –