2011-10-04 28 views
0

@@ Branislav-i做了和你说过的一样的东西,它对我很有用,但是没有任何图像超过9n文字,它也让我看到了同样的第一或蚂蚁随机图像和文字在第九图像的位置和文字带有图标和文字的gridview图像

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public ImageAdapter(Context c) { 
    mContext = c; 
} 

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

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

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

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     LayoutInflater li = getLayoutInflater(); 
     v = li.inflate(R.layout.mainmenu, null); 
     TextView tv = (TextView)v.findViewById(R.id.icon_text); 
     tv.setText(mTextsIds[position]); 
     ImageView iv = (ImageView)v.findViewById(R.id.icon_image); 
     iv.setImageResource(mThumbIds[position]); 
    } else { 
     v = (View) convertView; 
    } 
    return v; 
} 



    private Integer[] mThumbIds = { 
     R.drawable.hotel1, R.drawable.rest,R.drawable.dubaicityinfoicon_new,R.drawable.history1,R.drawable.geography,R.drawable.infoicon,R.drawable.infoicon,R.drawable.infoicon,R.drawable.parkmain, 

}; 

// references to our texts 
private String[] mTextsIds = { 
     "Hotels","Restaurants","City Info","Dubai History","Geography Of Dubai","Useful Information","Embassies in Duabai","Museum's","park" 
}; 

在此它回事,直到完美博物馆但公园的工作不被显示阵列mThumbIds内的任何随机图像n相关联的文本。 plz plz催促需要帮助.. ñ呀图像是可绘制的。

+0

http://developer.android.com/resources/tutorials/views/hello-gridview.html –

+0

@@ Dr.nik-我没有在教程中做过这样的事情say.stil面临问题 – sups

回答

2

您可以custome适配器类为

public class MyAdapter extends ArrayAdapter<BindData> { 
    private LayoutInflater inflater; 
    private int layoutId; 

    public MyAdapter(Context context, int layoutId, BindData[] objects) { 
     super(context, 0, objects); 
     this.inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     this.layoutId = layoutId; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 

     if (convertView == null) { 
      convertView = inflater.inflate(layoutId, parent, false); 
      holder = new ViewHolder(); 
      holder.textView = (TextView) convertView.findViewById(R.id.textview); 
      holder.imageView = (ImageView) convertView.findViewById(R.id.imageview); 
      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     //BindData data = getItem(position); 
     holder.textView.setText(titles[position]); 
     holder.imageView.setImageBitmap(imgs[position]); 
     return convertView; 
    } 
} 

,并调用这样

issueGridView = (GridView) findViewById(R.id.gvissue); 
     adapter =new MyAdapter(Issue.this, R.layout.issue_item, mDatas); 
     issueGridView.setAdapter(adapter); 

哪里mDatas是

public class BindData { 
    Bitmap b; 
    String title; 
    BindData(Bitmap bitmap, String s) { 
     this.b = bitmap; 
     this.title = s; 
    } 
} 
private BindData[] mDatas; 
    static class ViewHolder { 
     TextView textView; 
     ImageView imageView; 
    } 
1

使用地图或HashMap来配对你的价值,

HashMap<Integer, String> store = new HashMap<Integer, String>(); 
store.put(R.drawable.hotel1, "Hotels"); 
+0

@@ xjaphx-你可以告诉我如何使用这个? bcz我新来android – sups