0

如何刷新我的视图以进行更新?我想这样做的原因是因为我有一个ImageButton只有在某个条件为真时才会显示的。当用户导航回 Activity 时。

这是我的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();

            }
        });
    }
    }

非常感谢任何建议!

4

2 回答 2

3

setVisibility()就其本身应该invalidate()你的看法。您应该调试并检查您的getOrderItems().size()调用是否返回了您期望的结果。不过,你不应该再打电话setContentView()onCreate()

于 2013-02-21T18:11:53.157 回答
0

在你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);
}
于 2013-02-21T18:24:35.390 回答