0

ビューを更新して更新するにはどうすればよいですか? これを行う理由はImageButton、特定の条件が true の場合にのみ表示される があるためです。ユーザーがアクティビティに戻ったとき。

これは私の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 に答える