gpt4 book ai didi

android - 如何从项目的 Android 适配器获取 View

转载 作者:太空狗 更新时间:2023-10-29 15:23:21 25 4
gpt4 key购买 nike

给定一个显示在 ListView 中的项目,

我可以使用它的 Adapter(或 ListView 本身)找到显示 Item 的 View 吗?

我正在处理项目数据的保存并且必须将更改传播回 ListView。添加一个项目会使用 notifyDataSetChanged() 显示它,但不会使用 notifyDataSetChanged() 重新绘制已更改的项目

这是我编辑项目的 Activity 代码:

@Override
public void onClick(View button) {
EditText text = (EditText)(findViewById(R.id.itemText));
if (item == null) {
// Add - this path updates ListView
ItemsAdapter.instance().items.add(new Item(text.getText().toString()));
} else {
// Save - this path does not update ListView
this.item.setTitle(text.getText().toString());
}
ItemsAdapter.instance().notifyDataSetChanged();
this.finish(); // Close activity
}

我的适配器的相关部分是:

public class ItemsAdapter extends BaseAdapter {
ArrayList<Item> items = new ArrayList<Item>();

@Override
public int getCount() {
return items.size();
}

@Override
public Object getItem(int position) {
return items.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
Item item = (Item)getItem(position);
// ItemTextView is a subclass of TextView which keeps a reference to the item
// So that in my OnClickListener, I can get the underlying Item and edit it
ItemTextView textView = null;
if (convertView == null) {
textView = new ItemTextView(context, item);
// Associate with itemListener which opens edit activity for item
textView.setOnClickListener(itemListener);
textView.setTextSize(16);
textView.setPadding(5, 5, 5, 5);
} else {
textView = (ItemTextView) convertView;
textView.setItem(item);
}

return textView;
}
}

Item 类是一个实现了 Parcelable 的 POJO。

提前致谢

杰夫

最佳答案

好吧,我错了,adamp 是对的。

问题是一个新手问题。我正在更新从子 Activity 中的 bundle 中获得的项目。当控制权传回原来的 Activity 时,原来的 Activity 是 unchangwd。

关于android - 如何从项目的 Android 适配器获取 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161790/

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