0

been alright so far. I try to use docs or find my issues. However my mainActivity has 4 buttons. These buttons depending on which view is clicked passes the R.id.button. I pass this value into an intent which Activity2 uses bundle to get id integer. I then setContentView using this.

However im having issues getting correct view to inflate now, it seems like its loading an old layout. My aim is to inflate 3 separate layout on Activity2 depending which button was clicked.

I know my other other button does inflate another activity and get proper xml layout. Why are my other 3 buttons not inflating on Activity2 properly?

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

Button pizza;
Button hamburger;
Button icecream;
Button history;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    pizza = findViewById(R.id.buttonPizza);
    hamburger = findViewById(R.id.buttonBurger);
    icecream = findViewById(R.id.buttonIceCream);
    history = findViewById(R.id.buttonHistroy);

    pizza.setOnClickListener(this);
    hamburger.setOnClickListener(this);
    icecream.setOnClickListener(this);
    history.setOnClickListener(this);


}



@Override
public void onClick(View v){

    int idView = v.getId();
    switch(v.getId()) {

        case R.id.buttonBurger : startOrderActivity(R.layout.burger_layout);
            makeToast(idView);
            break;

        case R.id.buttonPizza : startOrderActivity(R.layout.pizza_layout);
            makeToast(idView);
            break;

        case R.id.buttonIceCream : startOrderActivity(R.layout.icecream_layout);
            makeToast(idView);
            break;

        case R.id.buttonHistroy : startOrderActivity(R.layout.history_layout);
            makeToast(idView);
            break;


    }
}

private void startOrderActivity(int id){

    if(id != R.layout.history_layout) {
        Intent intentOrder = new Intent(this, MakeOrderActivity.class);
        intentOrder.putExtra("layout", id);
        startActivity(intentOrder);
    }
    else {
        Intent intentOrder = new Intent(this, OrderHistoryActivity.class);
        intentOrder.putExtra("layout", id);
        startActivity(intentOrder);

    }

}
public void makeToast(int id){
    String txt = String.valueOf(id);
    Toast newToast =  Toast.makeText(getApplicationContext(),txt,Toast.LENGTH_LONG);
    newToast.show();


}

}


public class MakeOrderActivity extends AppCompatActivity {

Button placeOrderButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle data = getIntent().getExtras();
    int layoutNum = data.getInt("layout");
    setContentView(layoutNum);
    placeOrderButton = findViewById(R.id.placeOrder);

}

@Override
protected void onStart() {
    super.onStart();


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.order, menu);

    return true;
}


public void onCheckboxClicked(View view){

}

}

fractal80y
  • 91
  • 1
  • 5

1 Answers1

0

Answer is to create a View which is created by getInflator.

https://stackoverflow.com/a/17070408/8443090

fractal80y
  • 91
  • 1
  • 5