0

I am pretty new to Android and trying to build a food ordering application, I am having problems on the checkout page where a database should receive data from 6 different activities, however it only receives from the first activity launched and all the other fail. Can somebody give me a clue on how to manage that? Thanks in advance to all

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


    }

}
Stidgeon
  • 2,673
  • 8
  • 20
  • 28
  • How do your activities give data to the checkout page? – Shamas S Feb 05 '16 at 03:13
  • check your connection in other activities there are two reason of aborting of query first connection problem and second incorrect SQL statement.create log and sort out problem according log error. – Sunil Singh Feb 05 '16 at 03:20
  • You should be holding the data generated by these activities probably in a static environment (some sort of buffer), so when you reach the checkout activity you can just query this static context. Basically you grab the info from memory. – MarkSkayff Feb 05 '16 at 03:28
  • Shamas S - I uploaded the code of one of the activities that send data to the database I have used the same statement with different names for all other 5 activities – Viviane Pereira Figueiredo Feb 05 '16 at 03:50
  • Hi MarkSkayff, can you explain me a bit more on that? I have no idea on how to do that, I have no programming backgorund so somethings are really difficult for me to understand – Viviane Pereira Figueiredo Feb 05 '16 at 03:52
  • Please post the code of your `DatabaseOperations` – Jörn Buitink Feb 09 '16 at 08:50

1 Answers1

0

Explaining what @MarkSkayff said: passing data between the activities.

When you're calling the second activity, you can add Extras to your Intent. For example:

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

and on your MainActivity's onCreate Method, you can load this Extra using

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

You can read more about Intent Extras here: How to use putExtra() and getExtra() for string data

And on the CheckOut Activity, send the data to the Database.

Community
  • 1
  • 1