通过sqlite helper将EditText中输入的浮点值插入android数据库
我对java和Android都是新手。。。 我试图寻找相同的问题,但我很抱歉,如果itz已经存在,因为我无法理解,如果有的话 这个问题与打字有关。。我是这么想的通过sqlite helper将EditText中输入的浮点值插入android数据库,android,database,Android,Database,我对java和Android都是新手。。。 我试图寻找相同的问题,但我很抱歉,如果itz已经存在,因为我无法理解,如果有的话 这个问题与打字有关。。我是这么想的 public class Ingredients_Add extends Activity { EditText IngredientName=null; EditText IngredientQuantity=null; EditText IngredientUnit=null; EditText I
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);
这两个编辑框返回用户输入的浮点值
下面是我的onsave代码,用于单击按钮,它将值传递给
SQLHelper类在这里我将其命名为“MenuManagement\uSqlHelper”
以下代码适用于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信息(尽管不是必需的)
thnx提前对我来说,这似乎是一个范围问题。您在活动的
onCreate
方法中定义了IngredientQuantityfloat
,但您(可能)试图在OnClickListener(onSave
?)中引用它
换句话说:IngreditQuantityFloat
是本地声明的,只存在于onCreate方法中。如果要从活动的另一部分访问它,则需要将其设置为类变量/成员:
public class Ingredients_Add extends Activity {
float IngredientQuantityfloat;
EditText IngredientName=null;
...
public void onCreate(Bundle savedInstanceState) {
...
IngredientQuantityfloat=Float.valueOf(IngredientQuantity.getText().toString());
...
}
}
我试着把每一件东西都当作字符串发送,而不用打字。。。为什么我们不需要像在其他语言中那样进行打字。。我还是个问题
android:versionCode="1"
android:versionName="1.0"
android:minSdkVersion="8"
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);
...
}
public class Ingredients_Add extends Activity {
float IngredientQuantityfloat;
EditText IngredientName=null;
...
public void onCreate(Bundle savedInstanceState) {
...
IngredientQuantityfloat=Float.valueOf(IngredientQuantity.getText().toString());
...
}
}