如何制作实时对话?

How to make live dialog?

我必须构建一个自定义对话框,以便在内容视图更改时更新视图。

在下面的示例中,我有两个 TextView,一个在主 activity 中,一个在对话框布局中,从 1 到 10 的计数器应该显示在两个上(主 activity layout 和 dialog layout),但只有主 activity 中的 TextView 更新。

代码:

TextView tvCounter_Dialog, tvCounter_OutsideDialog;
int counter = 0;
Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_live_custom_dialog);
    handler = new Handler();

    View dialogView = getLayoutInflater().inflate(R.layout.dialog_live_layout, null);
    tvCounter_Dialog = (TextView) dialogView.findViewById(R.id.tvCounter);
    tvCounter_OutsideDialog = (TextView) findViewById(R.id.tvCounter_outsideDialog);

    Dialog counterDialog = new Dialog(this);
    counterDialog.setContentView(R.layout.dialog_live_layout);
    counterDialog.show();

    final Runnable updatedr = new Runnable() {
        @Override
        public void run() {
            counter = (counter + 1) % 10;
            tvCounter_Dialog.setText(String.valueOf(counter));
            tvCounter_OutsideDialog.setText(String.valueOf(counter));
            handler.postDelayed(this, 500);
        }
    };
    updatedr.run();
}

所以问题是 - 如何更新 dialog 中的 textview

编辑: 这是一个捕获(更清楚)

错误在这一行

 counterDialog.setContentView(R.layout.dialog_live_layout);

应该是

counterDialog.setContentView(dialogView);

在你的版本中,你的对话框的自定义视图和你膨胀的视图不同