gpt4 book ai didi

android - 如何在 getView 方法之外获取 View 和持有者对象?

转载 作者:搜寻专家 更新时间:2023-11-01 08:33:04 25 4
gpt4 key购买 nike

我有适配器和 fragment 。

考虑这个场景:

  1. 适配器有编辑文本

  2. 默认编辑文本不可编辑

  3. fragment 有一个编辑图标
  4. 点击编辑图标适配器的编辑文本应该变为可编辑

这是 fragment 代码:

editIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Adapter.makeEditTextEditable();
}
});

这里是适配器代码:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;

if (convertView == null) {
convertView = inflater.inflate(R.layout.layout, null);
holder = new ViewHolder();
holder.EditText = (EditText) convertView.findViewById(R.id.edit_text);

} else {
holder = (ViewHolder) convertView.getTag();
}
}


// This is method i am calling from fragment to make editText editable
public void makeEditTextEditable() {
// How do i get holder object and view object here? OR
// How do i make edit text editable from this method?
}

最佳答案

在你的适配器里面

boolean mEditTextEditable = false;

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;

if (convertView == null) {
convertView = inflater.inflate(R.layout.layout, null);
holder = new ViewHolder();
holder.EditText = (EditText) convertView.findViewById(R.id.edit_text);

} else {
holder = (ViewHolder) convertView.getTag();
}

holder.EditText.setEnabled(mEditTextEditable);
}

public void setEditTextEditable(boolean editable) {
if(editable == mEditTextEditable) return;

mEditTextEditable = editable;
notifyDatasetChange();
}

你要求在 getView() 方法之外获取 View ,但我不建议这样做,拥有 ListView/RecyclerView 的全部意义在于不必单独处理这些 View

关于android - 如何在 getView 方法之外获取 View 和持有者对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082629/

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