2016-02-05 83 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

非常感谢您的回复,我真的通过关闭数据库来解决它每次数据插入后,现在它工作正常。谢谢 –

相关问题