小编use*_*200的帖子

android listview滚动后显示错误数据(自定义适配器)

我有一个奇怪的问题让我发疯.在我的Android应用程序中,我定制了自己的适配器,它从ArrayAdapter扩展而来.我添加了适配器的ListView项可以标记为文本(不可编辑),可编辑文本或微调器.疯狂的东西是:当我滚动ListView时,有两个问题:

(1)微调器项目中显示的(选定)有时会发生变化,尽管我只是滚动!! 当我点击微调器时,仍会显示旧的选定值(一个,应由微调器显示)(2)滚动时ListViewItems 的顺序发生变化!

=>但是适配器中的数据不会改变(数据本身和订单都没有) - 所以它一定是View本身的问题?!也许android缓存在后台,并不会很快刷新ListViewItems或者像那样?!

有人能帮帮我吗?

多谢!

好吧,我找到了一个不太好的解决方案,但它确实有效.我只是不再使用convertView,尽管这对于内存和性能来说并不是最理想的.在我的情况下它应该没问题,因为我的ListView的最大项目数是15.这是我的Adapter-Class:

 public class FinAdapter extends ArrayAdapter<Param>{
    public Param[] params;
    private boolean merkzettel;
    protected EditText pv;

    public FinAdapter(Context context, int textViewResourceId, Param[] items, boolean merkzettel) {
        super(context, textViewResourceId, items);
        this.params = items;
        this.merkzettel = merkzettel;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final Param p = params[position];
        if(p != null){
            if(merkzettel){
                if (convertView == null) {
                    LayoutInflater …
Run Code Online (Sandbox Code Playgroud)

android listview scroll adapter

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

adapter ×1

android ×1

listview ×1

scroll ×1