android动态设置控件可见性,如何在显示android后更改自定义对话框中的视图的可见性...

想要在显示对话框后单击某些内容来更改linearlayout的可见性。确定点击方法是真的。即使它没有点击方法也行不通。有可能吗?例:

singleA.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

linearTYT.setVisibility(View.VISIBLE)

}else{

linearTYT.setVisibility(View.GONE)

}

}

});

它在对话框代码中。

答案

使用LayoutInflator你可能想要覆盖AlertDialog's Button因为它将默认dismiss() onClick()

View view = getLayoutInflater().inflate(R.layout.your_inflated_layout, null);

final LinearLayout linearLayout = view.findViewById(R.id.your_linear);

// Now you can do whatever you want with LinearLayout

Dialog.OnShowListener showListener = new DialogInterface.OnShowListener() {

@Override

public void onShow(DialogInterface dialogInterface) {

View.OnClickListener hideListener = new View.OnClickListener() {

@Override

public void onClick(View view) {

linearLayout.setVisibility(View.INVISIBLE);

}

};

View.OnClickListener unHideListener = new View.OnClickListener() {

@Override

public void onClick(View view) {

linearLayout.setVisibility(View.VISIBLE);

// Hiding LinearLayout but this doesn't

// dismiss the dialog if you want

// call dialogInterface.dismiss();

}

};

// Overriding AlertDialog's Button because we don't want it

// to dismiss in every click

Button hide = ((AlertDialog) dialogInterface).getButton(AlertDialog.BUTTON_POSITIVE);

Button unhide = ((AlertDialog) dialogInterface).getButton(AlertDialog.BUTTON_NEGATIVE);

hide.setOnClickListener(hideListener);

unhide.setOnClickListener(unHideListener);

}

};

AlertDialog.Builder builder = new AlertDialog.Builder(this)

.setView(view)

.setPositiveButton("Hide", null)

.setNegativeButton("Unhide", null);

AlertDialog dialog = builder.create();

dialog.setOnShowListener(showListener);

dialog.show();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值