如何在Android Fragment中为EditText设置失去焦点事件?
在Fragment中为EditText设置失去焦点事件的实现示例
以下是可直接复制使用的Fragment代码示例,核心逻辑和你在Activity中实现的一致,仅需调整控件获取的方式:
public class YourFragment extends Fragment { private EditText oET_PSN; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 加载当前Fragment的布局文件,请替换为你实际的布局文件名 return inflater.inflate(R.layout.your_fragment_layout, container, false); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // 通过Fragment的根View获取目标EditText oET_PSN = view.findViewById(R.id.txtEqPSN); // 设置焦点变化监听器 oET_PSN.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean hasFocus) { if (!hasFocus) { // 失去焦点时执行的业务逻辑 Log.d("oET_PSN", "Lost Focus"); } } }); } }
关键说明
- Fragment中无法直接调用
findViewById(),必须通过onCreateView返回的View对象来查找布局内的控件。 onViewCreated是设置控件监听的最佳时机,此时Fragment的视图已经完全初始化完成。- 焦点变化的处理逻辑和Activity中完全相同,只需复用你原本的判断逻辑即可。
内容的提问来源于stack exchange,提问作者user23177095
相关产品推荐
相关产品推荐

