" getView" - 项的位置不断变化,我必须单击两次"项目" [英] "getView" - the constant change of position of Items and I have to click twice of "Item"
问题描述
我有一个实现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/$c$c>
推荐答案
您不是你的意见做任何事情的时候都回收时(即当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屋!