【发布时间】:2019-09-07 13:19:50
【问题描述】:
到目前为止一切正常。我尝试使用文档或查找我的问题。 但是我的 mainActivity 有 4 个按钮。这些按钮取决于单击哪个视图传递 R.id.button。我将此值传递给 Activity2 使用 bundle 获取 id 整数的意图。然后我使用它来设置内容视图。
但是我现在无法获得正确的视图来膨胀,它似乎加载了一个旧的布局。我的目标是根据单击的按钮在 Activity2 上扩展 3 个单独的布局。
我知道我的另一个按钮确实会膨胀另一个活动并获得正确的 xml 布局。 为什么我的其他 3 个按钮在 Activity2 上没有正确充气?
公共类 MainActivity 扩展 AppCompatActivity 实现 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();
}
}
公共类 MakeOrderActivity 扩展 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){
}
}
【问题讨论】:
标签: android-layout