gpt4 book ai didi

android - 在 Butterknife 中使用多种方法将多个 View 绑定(bind)到一个监听器

转载 作者:行者123 更新时间:2023-11-30 00:51:26 24 4
gpt4 key购买 nike

我正在使用 Butterknife(8.4.0) 在具有多个 EditText 的 fragment 中实例化我的 View 。

我正在使用这些 EditText 将字符串设置为特定的模型属性。我不想为每个 Edittext 创建大量绑定(bind)方法,所以在 @onTextChanged 上我传入了所有编辑文本。我只对 AfterTextChanged() 感兴趣,所以我也传递了它。然后我使用 editText id 来指定应该设置哪个模型属性。

@BindView(R.id.edit_text_one) EditText textFieldOne;
@BindView(R.id.edit_text_two) EditText textFieldTwo;

@OnTextChanged(value = {R.id.edit_text_one, R.id.edit_text_two}, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
void setEditTextFields(EditText editText, Editable editable) {
switch (editText.getId()) {
case R.id.edit_text_one:
myModel.setStringOne(editable.toString());
break;
case R.id.edit_text_two:
myModel.setStringTwo(editable.toString());
break;
}
}

但是我遇到了编译错误

Error:(117, 10) error: @OnTextChanged methods can have at most 1 parameter(s). (com.skeeno.android.gamecabinet.Fragment.EditorFragment.setEditTextFields)

我读过 here您只是将 View 作为第一个参数传入,但这似乎不起作用,因为 AfterTextChanged 只需要可编辑。

有办法吗?

任何帮助将不胜感激。谢谢。

最佳答案

目前无法使用 @onTextChanged 传递 View 。我也试过了。

但是,下面的代码可以用来获取当前 View ,

//fragment 内部

View view = getActivity().getCurrentFocus();

希望这对您有所帮助。

关于android - 在 Butterknife 中使用多种方法将多个 View 绑定(bind)到一个监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963739/

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