在onResume Android中刷新视图



如何刷新视图进行更新?我之所以要这样做,是因为我有一个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);
}

相关内容

  • 没有找到相关文章

最新更新