从自定义活动中关闭Android的底部弹出对话框

4
我使用Chintan Khetiya提供的答案创建了一个自定义底部对话框Android对话框:如何在Android中创建自定义对话框?
我想从BottomDialogue自己的Activity中定义的按钮关闭对话框,而不是从调用活动中关闭。
这是我的调用活动中的代码,在其中通过单击按钮创建了我的自定义BottomSheet_liab实例:
openBottomDialogeButton.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                   **//Creating the BottomDialogue Instance**`Bottomsheet_liab dialog;
    dialog=new Bottomsheet_liab(getActivity());
dialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));`

        }
    });

这是我的对话活动中的代码:

public class Bottomsheet_liab extends BottomSheetDialog{
@Override
 protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.cashflow_bottomsheet);
         Button btn=(Button)findViewByID(R.id.btnx);
         btn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                   **//I want to dismiss this BottomSheetDialogue from here.How can I do this>**
        }
    });

}
2个回答

8
尝试这个。你需要像下面的代码一样调用dismiss();方法。
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      dismiss();
    }
});

示例代码

public class Bottomsheet_liab extends BottomSheetDialog{
@Override
 protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.cashflow_bottomsheet);
         Button btn=(Button)findViewByID(R.id.btnx);
         btn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                   dismiss();
        }
    });

}

@shubhamsaini 很高兴能够帮助。 - Goku

1
尝试以下代码。
private Button startbtn, okaybtn, cancelbtn;
BottomSheetDialog mBottomSheetDialog;
View sheetView;

    mBottomSheetDialog = new BottomSheetDialog(HomeActivity.this);
    sheetView = getLayoutInflater().inflate(R.layout.botomdialouge,null);
    mBottomSheetDialog.setContentView(sheetView);


    okaybtn = sheetView.findViewById(R.id.okaybtn);
    cancelbtn = sheetView.findViewById(R.id.cancelbtn);

   okaybtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });

    cancelbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mBottomSheetDialog.dismiss();
        }
    });

布局代码如下:
    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="250dp"
         android:id="@+id/bottomsheet"
         android:clipToPadding="true"
         android:background="@color/colorwhite"
 app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

        <ImageView
            android:layout_gravity="center"
            android:src="@drawable/logowhite"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:layout_gravity="center"
            android:textSize="@dimen/textsizenormal"
            android:textColor="@color/colortheme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/exit"
            android:padding="16dp"/>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/cancelbtn"
                android:text="Cancel"
                android:textColor="@color/colorwhite"
                android:layout_margin="10dp"
                android:textSize="@dimen/textsizenormal"
                android:background="@drawable/buttonclick"
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <Button
                android:id="@+id/okaybtn"
                android:text="Okay"
                android:textColor="@color/colorwhite"
                android:layout_margin="10dp"
                android:textSize="@dimen/textsizenormal"
                android:background="@drawable/buttonclick"
                android:layout_weight="1"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>
    </LinearLayout>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接