spinner.Images 中的滚动问题在向下滚动时不显示
Scrolling issue in spinner.Images not display when scrolling down
我在我的 activity 中放了一个微调器,然后我放了一个文本视图 imageview.when 我当时滚动了一些图像而不是 display.most 可能最后一些图像不是 shown.for清除下面的场景检查图片
SpinnerAdapterRecharge.java
public class SpinnerAdapterRecharge extends ArrayAdapter<listview_data> {
private Activity context;
listview_data data[] = null;
int layoutResourceId;
ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
public SpinnerAdapterRecharge(Activity context, int resource,listview_data[] data)
{
super(context, resource, data);
this.context = context;
this.data = data;
this.layoutResourceId = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
options = new DisplayImageOptions.Builder().cacheInMemory(true)
.cacheOnDisc(true)
.cacheInMemory(true)
.considerExifParams(true)
.resetViewBeforeLoading(true)
.showImageForEmptyUri(R.drawable.imagenotavailable)
.showImageOnFail(R.drawable.imagenotavailable)
.showImageOnLoading(R.drawable.imagenotavailable).build();
return getCustomView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{ // This view starts when we click the spinner.
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
View row = convertView;
listHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new listHolder();
holder.imgIcon = (ImageView)row.findViewById(R.id.spinnerimageIcon);
holder.txtTitle = (TextView)row.findViewById(R.id.spinnerOperator);
row.setTag(holder);
}
else
{
holder = (listHolder)row.getTag();
}
listview_data item = data[position];
if(position == 0)
{
holder.imgIcon.setVisibility(View.GONE);
holder.txtTitle.setText(context.getResources().getString(R.string.lbl_operator));
}
else {
holder.txtTitle.setText(item.title);
//holder.imgIcon.setImageResource(item.icon);
//if (holder.imgIcon.getTag() == null || !holder.imgIcon.getTag().equals(item.icon)) {
ImageAware imageAware = new ImageViewAware(holder.imgIcon, false);
imageLoader.displayImage("drawable://"+item.icon,imageAware,options);
//}
}
return row;
}
static class listHolder
{
ImageView imgIcon;
TextView txtTitle;
}
}
您使用的 Spinner
尺寸很小,因此您不必重复使用每个项目。
将您的 getCustomView
更改为:
public View getCustomView(int position, View convertView, ViewGroup parent) {
listHolder holder = new listHolder();
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
View row = inflater.inflate(layoutResourceId, parent, false);
holder.imgIcon = (ImageView)row.findViewById(R.id.spinnerimageIcon);
holder.txtTitle = (TextView)row.findViewById(R.id.spinnerOperator);
listview_data item = data[position];
if(position == 0)
{
holder.imgIcon.setVisibility(View.GONE);
holder.txtTitle.setText(context.getResources().getString(R.string.lbl_operator));
}
else {
holder.txtTitle.setText(item.title);
//holder.imgIcon.setImageResource(item.icon);
//if (holder.imgIcon.getTag() == null || !holder.imgIcon.getTag().equals(item.icon)) {
ImageAware imageAware = new ImageViewAware(holder.imgIcon, false);
imageLoader.displayImage("drawable://"+item.icon,imageAware,options);
//}
}
return row;
}
我在我的 activity 中放了一个微调器,然后我放了一个文本视图 imageview.when 我当时滚动了一些图像而不是 display.most 可能最后一些图像不是 shown.for清除下面的场景检查
SpinnerAdapterRecharge.java
public class SpinnerAdapterRecharge extends ArrayAdapter<listview_data> {
private Activity context;
listview_data data[] = null;
int layoutResourceId;
ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
public SpinnerAdapterRecharge(Activity context, int resource,listview_data[] data)
{
super(context, resource, data);
this.context = context;
this.data = data;
this.layoutResourceId = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
options = new DisplayImageOptions.Builder().cacheInMemory(true)
.cacheOnDisc(true)
.cacheInMemory(true)
.considerExifParams(true)
.resetViewBeforeLoading(true)
.showImageForEmptyUri(R.drawable.imagenotavailable)
.showImageOnFail(R.drawable.imagenotavailable)
.showImageOnLoading(R.drawable.imagenotavailable).build();
return getCustomView(position, convertView, parent);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{ // This view starts when we click the spinner.
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
View row = convertView;
listHolder holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new listHolder();
holder.imgIcon = (ImageView)row.findViewById(R.id.spinnerimageIcon);
holder.txtTitle = (TextView)row.findViewById(R.id.spinnerOperator);
row.setTag(holder);
}
else
{
holder = (listHolder)row.getTag();
}
listview_data item = data[position];
if(position == 0)
{
holder.imgIcon.setVisibility(View.GONE);
holder.txtTitle.setText(context.getResources().getString(R.string.lbl_operator));
}
else {
holder.txtTitle.setText(item.title);
//holder.imgIcon.setImageResource(item.icon);
//if (holder.imgIcon.getTag() == null || !holder.imgIcon.getTag().equals(item.icon)) {
ImageAware imageAware = new ImageViewAware(holder.imgIcon, false);
imageLoader.displayImage("drawable://"+item.icon,imageAware,options);
//}
}
return row;
}
static class listHolder
{
ImageView imgIcon;
TextView txtTitle;
}
}
您使用的 Spinner
尺寸很小,因此您不必重复使用每个项目。
将您的 getCustomView
更改为:
public View getCustomView(int position, View convertView, ViewGroup parent) {
listHolder holder = new listHolder();
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
View row = inflater.inflate(layoutResourceId, parent, false);
holder.imgIcon = (ImageView)row.findViewById(R.id.spinnerimageIcon);
holder.txtTitle = (TextView)row.findViewById(R.id.spinnerOperator);
listview_data item = data[position];
if(position == 0)
{
holder.imgIcon.setVisibility(View.GONE);
holder.txtTitle.setText(context.getResources().getString(R.string.lbl_operator));
}
else {
holder.txtTitle.setText(item.title);
//holder.imgIcon.setImageResource(item.icon);
//if (holder.imgIcon.getTag() == null || !holder.imgIcon.getTag().equals(item.icon)) {
ImageAware imageAware = new ImageViewAware(holder.imgIcon, false);
imageLoader.displayImage("drawable://"+item.icon,imageAware,options);
//}
}
return row;
}