getItemAtPosition()没有在列表视图中返回值

getItemAtPosition()没有在列表视图中返回值

问题描述:

我已经创建了一个自定义Base Adapter类,用图像和文本填充列表视图。 类的代码如下:getItemAtPosition()没有在列表视图中返回值

public class ViewAdapter extends BaseAdapter { 

private Activity activity; 
private String[] data; 
private static LayoutInflater inflater=null; 
public ImageLoader imageLoader; 
private ArrayList<String> items; 

public ViewAdapter(Activity a, ArrayList<String> items,String[] d) { 
    this.items = items;  
    activity = a; 
    data=d; 
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    imageLoader=new ImageLoader(activity.getApplicationContext()); 
} 

public int getCount() { 
    return data.length; 
} 

public Object getItem(int position) { 
    return position; 
} 

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

public static class ViewHolder{ 
    public TextView text; 
    public ImageView image; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi=convertView; 
    ViewHolder holder; 
    if(convertView==null){ 
     vi = inflater.inflate(R.layout.sectionview, null); 
     holder=new ViewHolder(); 
     holder.text=(TextView)vi.findViewById(R.id.txtLogoName);; 
     holder.image=(ImageView)vi.findViewById(R.id.imgBrandLogo); 
     vi.setTag(holder); 
    } 
    else 
     holder=(ViewHolder)vi.getTag(); 

    holder.text.setText(items.get(position)); 
    holder.image.setTag(data[position]); 
    imageLoader.DisplayImage(data[position], activity, holder.image); 
    return vi;  
} 

}

到目前为止列表中工作顺利,但是当我使用下面的代码来获得在特定poisition项目的价值,但不是值,它返回列表视图的项目位置。

即我使用的代码是

public void onItemClick(AdapterView<?> parent, View V, int position, long arg3) { 

       System.out.println("****SELECTED VALUES " Parent.getItemAtPosition(position)); 

    }); 

即使使用getItemIdAtPosition(位置)也被返回的值。

对此需要紧急帮助,是否有任何事情需要在适配器类中进行更改?

我改变了方法的getItem(INT位置)

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

,现在我叫它为:

System.out.println("****SELECTED VALUES " + secAdap.getItem(position)); 
现在

,因此其工作的罚款。

+0

你是一个拯救生命的人!我一直试图解决这个问题,因为我的第一个Android应用程序的2天! – nLL 2012-04-08 16:33:57

+0

你回答我愿意问的问题....谢谢:D – 2012-11-11 02:28:40

在适配器的时候写道:

public Object getItem(int position) { 
    return position; 
} 

所以这个工作正常,因为你正在返回的位置的项目。