如何刷新视图进行更新?我之所以要这样做,是因为我有一个ImageButton
,只有当某个条件成立时才会显示。当用户导航回"活动"时。
这是我的onResume
方法中的代码,但它什么都不做。我认为再次调用setContentView()
只会重新加载内容,但因为ImageButton
现在设置为VISIBLE
,所以会显示它。
代码:
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Toast.makeText(getApplicationContext(), "Resume Size: " + Order.getInstance().getOrderItems().size(), Toast.LENGTH_SHORT).show();
price.setText(String.valueOf(Order.getInstance().getAmount()));
confirmOrderBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
if(Order.getInstance().getOrderItems().size() > 0){
confirmOrderBtn.setVisibility(View.VISIBLE);
this.setContentView(R.layout.activity_starters);
confirmOrderBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Load up review order
Toast.makeText(v.getContext(), "REVIEW ORDER", Toast.LENGTH_SHORT).show();
}
});
}
}
非常感谢您的任何建议!
setVisibility()
本身应该invalidate()
您的视图。您应该调试并检查getOrderItems().size()
调用是否返回了您期望的结果。不过,您不应该在onCreate()
之后再调用setContentView()
。
在您的onCreate()
中放入此代码
confirmOrderBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Load up review order
Toast.makeText(v.getContext(), "REVIEW ORDER", Toast.LENGTH_SHORT).show();
}
});
}
在您的onResume
中使用以下内容:
if(Order.getInstance().getOrderItems().size() > 0){
confirmOrderBtn.setVisibility(View.VISIBLE);
}