使用ArraryAdapter在单个活动中显示8个图像和文本

时间:2012-09-26 11:47:48

标签: android listview

这里我有17张图片,我希望使用Grid Layoutgetview()调用方法在活动中显示这些图片(连续2张图片)。

如何设置单个活动中图像数量的限制。

public View getView(int position, View convertView, ViewGroup parent) 
{
    ViewHolder holder = null;
    RowData rowData=null;
    rowData = getItem(TabbedHorizontalPagerDemo.startWith);

    if(convertView == null) {
        convertView = mInflater.inflate(R.layout.list, null);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
    }

    holder = (ViewHolder) convertView.getTag();
    ImageView imageView1 = holder.getImage();
    imageView1.setImageResource(rowData.mImgid);

    TextView textView1 = holder.getTextView();
    textView1.setText(rowData.mTitle);
    TabbedHorizontalPagerDemo.startWith++;
    return convertView;
}

/*
 * Class to get values from a single row of list view
 */
private class ViewHolder
{
    private View mRow;
    private TextView textView = null;
    private ImageView image = null;

    public ViewHolder(View row){
        mRow = row;
    }

    public ImageView getImage(){
        if(image == null)
            image = (ImageView) mRow.findViewById(R.id.imageView1);
        return image;
    }

    public TextView getTextView(){
        if(textView == null)
            textView = (TextView) mRow.findViewById(R.id.imgText);
        return textView;
    }       
}

2 个答案:

答案 0 :(得分:1)

在编程代码的 getView(int pos,View inView,ViewGroup parent)中尝试此代码。我从数据库中获取了数据。可能它会解决你的问题:

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.gridstyle, null);
this.c.moveToPosition(pos);      
String albumName = this.c.getString(this.c.getColumnIndex("albumname"));
String image = this.c.getString(this.c.getColumnIndex("image_data"));
ImageView iv = (ImageView) v.findViewById(R.id.imagestyle);
    if (image != null) {
        Uri uri = Uri.parse(image);
        iv.setImageURI(uri);
            }

TextView fname = (TextView) v.findViewById(R.id.textstyle);
fname.setText(albumName);

答案 1 :(得分:0)

我通过getCount()方法中的返回8解决了我的问题。所以它在单个活动上给出8个图像。

public int getCount() {
    return 8;
}