对多个活动使用相同的SQLite数据库

时间:2016-02-05 03:11:03

标签: android sqlite listview android-activity android-lifecycle

我对Android很新,并尝试构建食品订购应用程序,我在结帐页面上遇到问题,数据库应该从6个不同的活动接收数据,但是它只接收从第一个启动的活动和所有其他活动失败。有人能给我一个如何管理它的线索吗?在此先感谢所有

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


    }

}

1 个答案:

答案 0 :(得分:0)

解释@MarkSkayff所说的内容:在活动之间传递数据。

当您调用第二个活动时,您可以向您的Intent添加额外内容。例如:

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

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

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

您可以在此处阅读有关Intent Extras的更多信息: How to use putExtra() and getExtra() for string data

在CheckOut Activity上,将数据发送到数据库。