繁体   English   中英

如何取消匿名类中的对话框?

[英]How to dismiss dialog from within anonymous class?

假设我有一个自定义对话框类,它扩展了Android的Dialog 现在,我在该对话框中有一个按钮,该按钮应该加载另一个片段并关闭对话框,因此我传递了匿名Button.OnclickListener来加载片段,但由于我无法访问它的对象而无法关闭该对话框。 我该怎么办?

BallsDialog dialog = new BallsDialog(this);
            dialog.setTitle("asd");
            dialog.setText("asd");

            dialog.setAgainButtonOnClickListener(new Button.OnClickListener() {
                public void onClick(View view) {
                    Bundle bundle = new Bundle();
                    bundle.putString("levels", String.valueOf(levelList.size()));
                    RelativeLayout ll = (RelativeLayout) findViewById(R.id.BallsRelativeLayout);
                    ll.setBackgroundResource(R.drawable.horizontal_background_main);

                    Fragment fragment = new LevelFragment();
                    fragment.setArguments(bundle);
                    FragmentManager fm = getFragmentManager();

                    FragmentTransaction transaction = fm.beginTransaction();
                    transaction.replace(R.id.main_fragment, fragment);
                    transaction.commit();
                    fm.executePendingTransactions();
                }
            });
            dialog.show();

如果由于某种原因您无法使外部对象成为最终对象,则仍然可以通过以下限定条件访问它:

BallsDialog.this.dismiss();

好的,我解决了问题,这就是答案。 将对话框对象设置为最终对象,然后可以在匿名类中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM