" getView" - 项的位置不断变化,我必须单击两次"项目" [英] "getView" - the constant change of position of Items and I have to click twice of "Item"

查看:161
本文介绍了" getView" - 项的位置不断变化,我必须单击两次"项目"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个实现ArrayAdapter(扩展ArrayAdapter),该方法getView不断刷新屏幕,不断变化的ListView控件的位置项目。但是,这不是唯一的问题。当我想使文本的变化 - 是的重新排序。还有,激活setOnClickListener行我有点击两次

I have a realization of ArrayAdapter (extends ArrayAdapter), the method getView constantly redraw the screen,constantly changing position item of the ListView. But this is not the only problem. When I want to make text changes - are re-sorted. As well as to activate the line by setOnClickListener I have to click twice

我的源

public View getView(int position, View convertView, ViewGroup parent) {


        UrlItem urlItem = (UrlItem) this.getItem(position);
        ViewHolder viewHolder = null;

        if (convertView == null) {

            convertView = inflater.inflate(R.layout.database_table_item, null);
            viewHolder = new ViewHolder();

            viewHolder.text = (TextView) convertView
                    .findViewById(R.id.editText1);

            viewHolder.text.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {                   


                    int getPosition = (Integer) v.getTag();
                }
            });



            convertView.setTag(viewHolder);

            convertView.setTag(R.id.editText1, viewHolder.text);
            viewHolder.text.setTag(position);
            viewHolder.text.setText(urlItem.getUrl());
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        return convertView;

    }

帮我这个链接
<$c$c>http://vikaskanani.word$p$pss.com/2011/07/27/android-focusable-edittext-inside-listview/

推荐答案

您不是你的意见做任何事情的时候都回收时(即当convertView!= NULL)。您需要获得viewHolder以后做任何具体位置的东西。尝试沿着这些路线的更多的东西:

You're not doing anything with your views when they are recycled (i.e. when convertView != null). You need to do any position-specific stuff after obtaining the viewHolder. Try something more along these lines:

if (convertView == null) {

    convertView = inflater.inflate(R.layout.database_table_item, null);
    viewHolder = new ViewHolder();

    viewHolder.text = (TextView) convertView
            .findViewById(R.id.editText1);

    viewHolder.text.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {                   


            int getPosition = (Integer) v.getTag();
        }
    });

    convertView.setTag(viewHolder);

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

viewHolder.text.setTag(position);
viewHolder.text.setText(urlItem.getUrl());

return convertView;

这篇关于&QUOT; getView&QUOT; - 项的位置不断变化,我必须单击两次&QUOT;项目&QUOT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆