2016-02-05 82 views
0

我對Android非常陌生並試圖構建食品訂購應用程序,我在結帳頁面遇到問題,數據庫應該從6個不同的活動接收數據,但它只接收來自第一個活動啓動,所有其他失敗。有人可以告訴我如何管理?在此先感謝所有使用相同的SQLite數據庫進行多個活動

public class BaconBurgerActivity extends Activity 
{ 

    ImageView bacon_burger; 
    TextView bacon_burger_txt; 
    TextView bacon_burger_price; 
    TextView bacon_burger_qty; 
    Spinner bacon_burger_spinner; 
    Button bb_add_btn; 
    Button bb_menu_btn; 
    TextView bacon_burger_combo; 
    TextView bacon_burger_juices; 
    TextView bacon_burger_sides; 
    TextView bacon_burger_combo_qty; 
    Button bacon_burger_combo_add; 
    Spinner bacon_burger_juice_spinner; 
    ArrayAdapter<CharSequence> bacon_burger_juice_adapter; 
    Spinner bacon_burger_side_spinner; 
    ArrayAdapter<CharSequence> bacon_burger_side_adapter; 
    Spinner bacon_burger_combo_qty_spinner; 
    Context ctx = this; 
    SQLiteDatabase db; 



@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.bacon_burger_layout); 
    //Bacon Burger Image and Text View 
    bacon_burger=(ImageView)findViewById(R.id.bb_main); 
    bacon_burger_txt=(TextView)findViewById(R.id.bb_text); 
    bacon_burger_price=(TextView)findViewById(R.id.bb_price); 
    bacon_burger_qty=(TextView)findViewById(R.id.bb_qty); 
    //Bacon Burger Spinner 
    Integer[] options = new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    bacon_burger_spinner=(Spinner)findViewById(R.id.bb_spinner); 
    ArrayAdapter<Integer> bacon_burger_adapter =new ArrayAdapter<>(this,android.R.layout.simple_spinner_item,options); 
    bacon_burger_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    bacon_burger_spinner.setAdapter(bacon_burger_adapter); 

    //Bacon Burger Buttons 
    bb_add_btn=(Button)findViewById(R.id.bb_add); 
    bb_menu_btn=(Button)findViewById(R.id.bb_back); 

    //Combo Image and Text View 
    bacon_burger_combo=(TextView)findViewById(R.id.bb_combo); 
    bacon_burger_juices=(TextView)findViewById(R.id.juices); 
    bacon_burger_sides=(TextView)findViewById(R.id.sides); 
    bacon_burger_combo_qty=(TextView)findViewById(R.id.bb_combo_qty); 
    //Combo Button 
    bacon_burger_combo_add=(Button)findViewById(R.id.bb_combo_add); 
    //Combo Juice Spinner 
    bacon_burger_juice_spinner=(Spinner)findViewById(R.id.bb_juice_spinner); 
    bacon_burger_juice_adapter=ArrayAdapter.createFromResource(this,R.array.juices,android.R.layout.simple_spinner_item); 
    bacon_burger_juice_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    bacon_burger_juice_spinner.setAdapter(bacon_burger_juice_adapter); 
    //Combo Side Spinner 
    bacon_burger_side_spinner=(Spinner)findViewById(R.id.bb_side_spinner); 
    bacon_burger_side_adapter=ArrayAdapter.createFromResource(this,R.array.sides,android.R.layout.simple_spinner_item); 
    bacon_burger_side_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    bacon_burger_side_spinner.setAdapter(bacon_burger_side_adapter); 
    //Combo Qty Spinner 
    Integer[] numbers = new Integer[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    bacon_burger_combo_qty_spinner=(Spinner)findViewById(R.id.bb_combo_spinner); 
    ArrayAdapter<Integer> bacon_burger_combo_adapter =new ArrayAdapter<>(this,android.R.layout.simple_spinner_item,numbers); 
    bacon_burger_combo_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    bacon_burger_combo_qty_spinner.setAdapter(bacon_burger_combo_adapter); 


} 

//Bacon Burger onClick method 
public void add_btn (View view) 
{ 
    int quantity = Integer.parseInt(bacon_burger_spinner.getSelectedItem().toString()); 
    float price =(float) 6.52; 
    float total= ((quantity)*(price)); 
    String bb_order=bacon_burger_spinner.getSelectedItem().toString()+" Bacon Burger"; 
    DatabaseOperations DB = new DatabaseOperations(ctx); 
    DB.putInformation(DB,bb_order,null,total); 
    Toast.makeText(getBaseContext(),"ITEM ADDED TO BASKET", Toast.LENGTH_LONG).show(); 

} 

public void menu_btn (View view) 
{ 
    Intent bb_intent=new Intent(BaconBurgerActivity.this,MainActivity.class); 
    startActivity(bb_intent); 
} 

//Bacon Burger Combo onClick method 

public void add_combo_btn (View view) 
{ 
    int combo_quantity= Integer.parseInt(bacon_burger_combo_qty_spinner.getSelectedItem().toString()); 
    float bb_combo_price=(float)8.55; 
    float bb_combo_total= ((combo_quantity)*(bb_combo_price)); 
    String bb_combo_order=bacon_burger_combo_qty_spinner.getSelectedItem().toString()+" Bacon Burger Combo"; 
    String bb_juice_side=bacon_burger_side_spinner.getSelectedItem().toString()+bacon_burger_juice_spinner.getSelectedItem().toString(); 
    DatabaseOperations DB = new DatabaseOperations(ctx); 
    DB.putInformation(DB,bb_combo_order,bb_juice_side,bb_combo_total); 
    Toast.makeText(getBaseContext(),"ITEM ADDED TO BASKET", Toast.LENGTH_LONG).show(); 


    } 

} 
+0

您的活動如何向結帳頁面提供數據? –

+0

檢查你的連接在其他活動中有兩個原因是中止查詢第一個連接問題和第二個不正確的SQL語句。根據日誌錯誤創建日誌並解決問題。 –

+0

您應該將這些活動生成的數據保存在靜態環境(某種緩衝區)中,因此,當您到達結帳活動時,您可以查詢此靜態上下文。基本上你從內存中獲取信息。 – MarkSkayff

回答

0

解釋@MarkSkayff說:在活動之間傳遞數據。

當您調用第二個活動時,您可以將Extras添加到您的意圖。例如: How to use putExtra() and getExtra() for string data

而且在結賬活動:

Intent bb_intent=new Intent(BaconBurgerActivity.this,MainActivity.class); 
bb_intent.putExtra("total",total); 
startActivity(bb_intent); 

,並在您的MainActivity的onCreate方法,您可以使用

getIntent().getFloatExtra("total",0f); //0f is the default value, in case the float isn't found. 

你可以閱讀更多關於意向額外這裏加載此額外,將數據發送到數據庫。

+0

非常感謝您的回覆,我真的通過關閉數據庫來解決它每次數據插入後,現在它工作正常。謝謝 –

相關問題