gpt4 book ai didi

java - 如何在 ListView 的每个项目中拥有 AutoCompleteTextView

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:50 26 4
gpt4 key购买 nike

我已经尝试这样做有一段时间了,但似乎无法做到。我将适配器应用于对象,但是当我在 View 中输入字符时,仍然没有任何结果。

public View getView(int position, View view, ViewGroup parent) {
ViewHolder holder;
if (view == null) {
holder = new ViewHolder();

view = mInflater.inflate(R.layout.list_item, parent, false);

holder.nameTxt = (AutoCompleteTextView) view.findViewById(R.id.name_txt);

String[] drinkArray = activity.getResources().getStringArray(R.array.drink_array);
holder.adapter = new ArrayAdapter<>(activity, android.R.layout.simple_list_item_1, drinkArray);
holder.nameTxt.setAdapter(holder.adapter);

view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}

if (!itemExists(position)) return view;

ListItem item = getItem(position);
holder.nameTxt.setText(item.name);

holder.nameTxt.setAdapter(holder.adapter);

holder.nameTxt.setTag(position);

holder.nameTxt.setOnFocusChangeListener(this);

return view;
}

@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) return;
int position;
ListItem item;
switch (v.getId()) {
case R.id.name_txt:
position = (int) v.getTag();
if (!itemExists(position)) return;
item = getItem(position);
AutoCompleteTextView txtView = (AutoCompleteTextView) v;
item.name = txtView.getText().toString();
break;
default:
Log.e(TAG, "Unknown onFocusChange View ID: " + v.getId());
break;
}
}

public class ViewHolder {
public AutoCompleteTextView nameTxt;
public ArrayAdapter<String> adapter;
}

public class ListItem {
public String name;

public ListItem() {
name = "";
}
}

好的,上面的代码就是我到目前为止所拥有的,这可以完美地保存和加载 TextView 中的数据。

最佳答案

我认为您的 getView else 方法有错误。你可以尝试以下方法改变

holder=(viewHolder) View.getTag();

holder = view;

然后从这种类型中退出

ViewHolder item = (ViewHolder) holder.getTag();
...

关于java - 如何在 ListView 的每个项目中拥有 AutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31612125/

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