2012-02-13 15 views
0

私はjavaを新しくAndroidにも新しく... 同じ問題を検索しようとしましたが、私は同じ問題を検索しようとしました。EditTextに入力された浮動小数点値をAndroidのスルー・データ・セットに挿入する

IngredientQuantity=(EditText)findViewById(R.id.lnrAddIngredients_edtxtQuantity); 
IngredientCost=(EditText)findViewById(R.id.lnrAddIngredients_edtxtCost); 

これら二つに

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); 
    } 

が、私は問題を抱えている...あらゆる....

問題は型キャストに関連している場合..私はそう何を考えていることを理解することができ編集ボックスは、私が「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クラスに値を渡すボタンクリックのための私のOnSaveコードです続き...

をユーザーが入力した浮動小数点値を返しますsqlhelperクラスのためである: - :IngredientQuantityfloatは変数 IngredientQuantityfloatに解決することはできません がRESOLVすることはできません - 私は直面しています

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); 
    } 

問題私は、文字列を渡したし、そこsqlhelperにそれはfloatとして宣言されたような問題がfloat変数に来ている変数

に編... 以前は、関数の不一致だった - >「uがフロートに変換しなければならないこと」今では

変数に解決できないことを与えて解析した後

...

SDK情報(必須ではないが)

android:versionCode="1" 
android:versionName="1.0" 
android:minSdkVersion="8" 

thnxを事前に

+0

...我々として型キャストする必要はありません理由我々は他の言語で行う..まだ質問4私 – DeltaCap

答えて

1

スコープのように見えます。アクティビティの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()); 
     ... 
    } 
} 
+0

ああ、ありがとうたくさん...それは愚かな間違いだった:( – DeltaCap

関連する問題