Android “底部工作表”对话框打开多次

Android “底部工作表”对话框打开多次,android,android-asynctask,android-alertdialog,Android,Android Asynctask,Android Alertdialog,我正在使用bottomsheetlayout弹出窗口进行社交媒体共享。现在的问题是,它不止一次开放。请帮我解决这个问题 在我的按钮上单击我调用asynctask下载图像 @Override protected void onPostExecute(Void res) { super.onPostExecute(res); //prodImageUri1.addAll(prodImageUri); if(si

我正在使用bottomsheetlayout弹出窗口进行社交媒体共享。现在的问题是,它不止一次开放。请帮我解决这个问题

在我的按钮上单击我调用asynctask下载图像

@Override
        protected void onPostExecute(Void res) {
            super.onPostExecute(res);
            //prodImageUri1.addAll(prodImageUri);

            if(single_rdb.isChecked())
            {
                   createImageBitmap();
            }
            else if(allimg_rdb.isChecked())
            {

                 temps=new ArrayList<>();
                for(int i=0;i<prodImageUri.size();i++)
                {
                    if(i==8)
                    {
                        break;
                    }
                    temps.add(prodImageUri.get(i));
                   // System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
                    createImageBitmap();

                }

            }

        }
@覆盖
受保护的void onPostExecute(void res){
super.onPostExecute(res);
//prodImageUri1.addAll(prodImageUri);
if(single_rdb.isChecked())
{
createImageBitmap();
}
else if(allimg_rdb.isChecked())
{
temps=newarraylist();

for(int i=0;iOK)从for循环中删除底部的工作表对话框调用,并将其放置在for循环之外,因为for循环多次执行,在for循环到达数组列表的末尾之前,它将继续执行。 所以,只需移除底部薄板并将其放置在for循环之外 由于这段代码,您正面临问题:

for(int i=0;i<prodImageUri.size();i++)
                {
                    if(i==8)
                    {
                        break;
                    }
                    temps.add(prodImageUri.get(i));
                   // System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
                    createImageBitmap();

                }

for(int i=0;ii尝试将其置于循环外部,但显示相同的结果从createimagebitmap()中删除底部工作表对话框)方法并将其放置在方法之外是的,你是对的,我明白你的意思,但是我在哪里可以调用此方法?它将脱离流程保留方法,因为它只是删除对对话框的调用,并将其放置在方法之外,以及loops@khimji如果有帮助,请考虑把我的答案标记正确。
for(int i=0;i<prodImageUri.size();i++)
                {
                    if(i==8)
                    {
                        break;
                    }
                    temps.add(prodImageUri.get(i));
                   // System.out.println("SIZE "+temps.size()+"TEST1 "+temps.get(i));
                    createImageBitmap();

                }