Dialog 获取焦点的监听

Dialog 获取焦点的监听  dialog依附在activity上。现在dialog弹出的时候要让 activity的界面做相应的逻辑。dialog消失的时候,也要让activity界面做相应的动作。上网查了半天没有这个监听。最后在activity的生命周期上找到了解决办法。因为activity、和fragment之间切换的时候肯定会走 onWindowFocusChanged方法    具体见方法:



    @Override
    public void onWindowFocusChanged(boolean hasFocus) {

        if (datePickerDialog.isVisible()){
            Toast.makeText(this, "aaaaaaa 时间控件显示了", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "aaaaaaa 时间控件离开了", Toast.LENGTH_SHORT).show();
        }
        super.onWindowFocusChanged(hasFocus);
    }


Android或iOS等平台的用户界面设计中,当用户点击对话框中的某个区域时,通常需要处理点击监听事件。这种监听通常涉及到以下几个步骤: 1. **设置监听器**:在相应的View(如按钮、文本框或自定义布局)上设置OnClickListener或类似类型的事件处理器,这可以是Java或Kotlin的匿名内部类,也可以是一个实现了OnClickListener接口的类。 ```java button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 当按钮被点击时执行的代码 Toast.makeText(context, "Button clicked!", Toast.LENGTH_SHORT).show(); } }); ``` 2. **重写方法**:如果是在继承自View或其子类的自定义控件中,可能需要重写`onTouchEvent()`方法来处理点击事件,因为`onClick()`只在点击视图的焦点区域有效。 ```kotlin class CustomDialog : DialogFragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.custom_dialog, container, false) view.findViewById<Button>(R.id.button_id).setOnClickListener { // 点击事件处理 } return view } } ``` 3. **事件处理**:在`onClick()`或`onTouchEvent()`的回调里,你可以获取到用户点击的具体位置,执行相应的操作,比如更新UI、显示信息、导航等。 ```java @Override public void onClick(View v) { int position = (int) v.getId(); // 获取点击的View ID switch (position) { case R.id.button1: // 处理第一个按钮的点击 break; case R.id.button2: // 处理第二个按钮的点击 break; // ... } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留白的云

感谢鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值