gpt4 book ai didi

android - EditText setOnFocusChangeListener 在所有 EditText 上

转载 作者:可可西里 更新时间:2023-11-01 19:09:16 41 4
gpt4 key购买 nike

我有几个 EditText 字段,我想使用 setOnFocusChangeListener 将它们保存到 SQLiteDatabase。我是否必须为每个单独设置一个 onFocusChangeListener,或者是否有某种包罗万象的东西? (getActivity().findViewByID 因为这是一个 fragment )

final TextView txtName = (TextView)getActivity().findViewById(R.id.clientHeader);
final TextView txtCompany = (TextView)getActivity().findViewById(R.id.txtContactCompany);
final TextView txtPosition = (TextView)getActivity().findViewById(R.id.txtContactPosition);


txtName.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "name", txtName.getText().toString());
}
}
});


txtCompany.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "company", txtCompany.getText().toString());
}
}
});

txtPosition.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus) {
saveThisItem(txtClientID.getText().toString(), "position", txtPosition.getText().toString());
}
}
});

比如...有什么方法可以让 EditText View 的 ArrayList < EditText > 分配一个指针(抱歉,不确定如何)到现有的 editTexts 并将 onFocusChangeListener 设置为整个数组列表?或者,甚至遍历 ArrayList 并为每个成员设置 onFocusChangeListener?

或者一种方法来检测任何 onFocusChangeListener 事件,并将所有数据保存到数据库中,而不管事件发生在什么 EditText 上?

最佳答案

那么,您可以让您的 Activity 实现 OnFocusChangeListener。这样,您的所有更改都将在那个方法上进行,但是您必须通过使用 v.getId() 获取 View ID 来检查哪个 View 更改了焦点并进行相应处理。

@Override
public void onFocusChange(View v, boolean hasFocus) {
switch(v.getId()){
case r.id.editText1:
break;

...etc
}
}

关于android - EditText setOnFocusChangeListener 在所有 EditText 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311609/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com