[英]to insert float values entered in EditText into databse of android thru sqlite helper
我是Java的新手,也是Android的新手...我試圖搜索相同的問題,但是如果itz已經在那里,我感到抱歉,因為我無法理解是否有...。
問題與類型轉換有關。
public class Ingredients_Add extends Activity {
EditText IngredientName=null;
EditText IngredientQuantity=null;
EditText IngredientUnit=null;
EditText IngredientCost=null;
MenuManagement_SQLHelper helper=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ingredients_add);
helper=new MenuManagement_SQLHelper(this);
IngredientName=(EditText)findViewById(R.id.lnrAddIngredients_edtxtName);
IngredientQuantity=(EditText)findViewById(R.id.lnrAddIngredients_edtxtQuantity);
IngredientUnit=(EditText)findViewById(R.id.lnrAddIngredients_edtxtUnit);
IngredientCost=(EditText)findViewById(R.id.lnrAddIngredients_edtxtCost);
float IngredientQuantityfloat=Float.valueOf(IngredientQuantity.getText().toString());
float IngredientCostfloat=Float.valueOf(IngredientCost.getText().toString());
Button SaveIngredients=(Button)findViewById(R.id.lnrAddIngredients_btnSave);
SaveIngredients.setOnClickListener(onSave);
}
我有問題
IngredientQuantity=(EditText)findViewById(R.id.lnrAddIngredients_edtxtQuantity);
IngredientCost=(EditText)findViewById(R.id.lnrAddIngredients_edtxtCost);
這兩個編輯框返回用戶輸入的Float值...
以下是我的按鈕單擊保存代碼,它將值傳遞給SQLHelper類,這里我將其命名為“ MenuManagement_SQLHelper”
private View.OnClickListener onSave=new View.OnClickListener() {
@Override
public void onClick(View v) {
helper.insertIngredients(IngredientName.getText().toString(), IngredientQuantityfloat, IngredientUnit.getText().toString(), IngredientCostfloat);
}
};
以下代碼適用於sqlhelper類:
public class MenuManagement_SQLHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME="menu_management.db";
private static final int SCHEMA_VERSION=1;
public MenuManagement_SQLHelper(Context context) {
super(context, DATABASE_NAME,null,SCHEMA_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE tblIngredients (_id INTEGER PRIMARY KEY AUTOINCREMENT, Ingredient_name TEXT,Ingredient_quantity FLOAT,Ingredient_unit TEXT,Ingredient_cost FLOAT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public void insertIngredients(String IngredientName,Float IngredientQuantity,String IngredientUnit,Float Ingredientcost){
ContentValues cv= new ContentValues();
cv.put("IngredientName", IngredientName);
cv.put("IngredientQuantity", IngredientQuantity);
cv.put("IngredientUnit", IngredientUnit);
cv.put("Ingredientcost", Ingredientcost);
getWritableDatabase().insert("tblIngredients","IngredientName", cv);
}
我面臨的問題:-IngredientQuantityfloat無法解析為變量IngredientQuantityfloat無法解析為變量
問題是浮點型變量的問題...早些時候是函數不匹配,因為我正在傳遞字符串,並且在sqlhelper中被聲明為float->“您必須將其轉換為float”
現在解析后,它給
無法解析為變量...
sdk信息(盡管不是必需的)
android:versionCode="1"
android:versionName="1.0"
android:minSdkVersion="8"
提前thnx
對我來說,這似乎是一個范圍問題。 您在活動的onCreate
方法中定義了IngredientQuantityfloat
,但是(可能)您試圖在OnClickListener( onSave
?)中引用它。
public void onCreate(Bundle savedInstanceState) {
...
float IngredientQuantityfloat=Float.valueOf(IngredientQuantity.getText().toString());
...
}
public void onClick(View v) {
...
helper.insertIngredients(IngredientName.getText().toString(), IngredientQuantityfloat, IngredientUnit.getText().toString(), IngredientCostfloat);
...
}
換句話說: IngredientQuantityfloat
是在本地聲明的,並且僅存在於onCreate方法中。 如果要從活動的另一部分訪問它,則需要使其成為類變量/成員:
public class Ingredients_Add extends Activity {
float IngredientQuantityfloat;
EditText IngredientName=null;
...
public void onCreate(Bundle savedInstanceState) {
...
IngredientQuantityfloat=Float.valueOf(IngredientQuantity.getText().toString());
...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.