Java 对话框在if条件下不关闭

Java 对话框在if条件下不关闭,java,android,progressdialog,Java,Android,Progressdialog,我试图在条件真实的情况下关闭对话框,但它不起作用。 在对话框中,在if条件下输入,但不关闭。在if条件下,正确显示toast消息 public void showIncomingCall() { int getTotal = 0; if(showincoming != null && showincoming.isShowing() ) { //adapter1.notifyDataSetChanged(

我试图在条件真实的情况下关闭对话框,但它不起作用。 在对话框中,在if条件下输入,但不关闭。在if条件下,正确显示toast消息

public void showIncomingCall() {

        int getTotal = 0;

        if(showincoming != null && showincoming.isShowing() )
        {
            //adapter1.notifyDataSetChanged();
            //showincoming.dismiss();
            return;
        }
        else {
            showincoming = new Dialog(MainActivity.this);
            showincoming.requestWindowFeature(Window.FEATURE_NO_TITLE);
            showincoming.setContentView(R.layout.custome_dialog);
            listdialog = (ListView) showincoming.findViewById(R.id.incoming_list);
            //adapter1 = new CustomeListAdapter(MainActivity.this);
            listdialog.setAdapter(adapter1);
            //adapter1.notifyDataSetChanged();
             close = (ImageButton) showincoming.findViewById(R.id.dialog_close);

            close.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    showincoming.dismiss();
                    adapter1.notifyDataSetChanged();
                }
            });

            adapter1.notifyDataSetChanged();

            for (int i = 0; i < listdialog.getCount(); i++) {
                parentView = getViewByPosition(i, listdialog);
                String getString = ((TextView) parentView.findViewById(R.id.tvLineStatus)).getText().toString();

                if (getString.toString().equals("Idle") || getString.toString().equals("Disconnect") || getString.toString().equals("Dialing")) {
                    getTotal += 1;
                }
            }
            if (getTotal >= 7) {
                    showincoming.dismiss();
                    Toast.makeText(getApplicationContext(),"getTotal" + getTotal,Toast.LENGTH_LONG).show();
                    adapter1.notifyDataSetChanged();

                //adapter1.setNotifyOnChange(true);
            }
            //Toast.makeText(MainActivity.this,getTotal+"getTotal",Toast.LENGTH_LONG).show();
            adapter1.notifyDataSetChanged();
            listdialog.invalidateViews();
            if(!showincoming.isShowing()) {
                showincoming.show();
            }
        }
}
public void showincingcall(){
int getTotal=0;
if(showincoming!=null&&showincoming.isShowing())
{
//adapter1.notifyDataSetChanged();
//showincoming.disclose();
返回;
}
否则{
showincoming=新建对话框(MainActivity.this);
showincoming.requestWindowFeature(窗口.功能\u无\u标题);
showincoming.setContentView(R.layout.custome_对话框);
listdialog=(ListView)showincoming.findViewById(R.id.incoming\u列表);
//adapter1=新的CustomeListAdapter(MainActivity.this);
setAdapter(adapter1);
//adapter1.notifyDataSetChanged();
close=(ImageButton)showincoming.findViewById(R.id.dialog\u close);
close.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
showincoming.disclose();
adapter1.notifyDataSetChanged();
}
});
adapter1.notifyDataSetChanged();
对于(int i=0;i=7){
showincoming.disclose();
Toast.makeText(getApplicationContext(),“getTotal”+getTotal,Toast.LENGTH_LONG).show();
adapter1.notifyDataSetChanged();
//adapter1.setNotifyOnChange(true);
}
//Toast.makeText(MainActivity.this,getTotal+“getTotal”,Toast.LENGTH\u LONG.show();
adapter1.notifyDataSetChanged();
listdialog.invalidateViews();
如果(!showincoming.isShowing()){
showincoming.show();
}
}
}

showincoming=新建对话框(MainActivity.this)
在下面声明
int getTotal=0
i、 e外部
else
语句
然后,您可以获得对话框对象的引用,并可以取消对话框。试试这个,让我知道

您在逻辑上调用dismise()before show()方法,为什么?基本上你不能这样做,因为当你的对话框打开时…你的主要活动将被暂停…因此它的代码将不会执行…你必须从打开的对话框中删除对话框本身我尝试删除对话框,即使在对话框删除后我也会删除对话框正确显示但对话框不会删除。我正在尝试,但没有即使在解雇diaog后仍然有效,我称之为吐司,效果非常好:(仅当用于显示对话框的对象不可用于关闭对话框时,才会发生这种情况。请尝试在循环或if else语句中仅写入dialog.show方法。声明和初始化应在方法或类级别完成Oh thanx我将尝试此操作是的,我尝试但关闭不起作用,因为在else part dialog对象中使用h第二个堆索引。我想在else部分初始化对象,因为若对话框已显示,那个么它不会更新listview,而是生成新的对话框