Skip to content Skip to sidebar Skip to footer

How Do Add Images Next To Text Items In Listview In Android?

I am trying to add an image next to each item in my ListView but without any success so far. There is a DB, from where I retrieve the text data, like this: Cursor categoriesCurso

Solution 1:

First make a data model :

publicclassdataModel {
String title;
int imageId;

publicdataModel(String title, int imageId) {
    this.title = title;
    this.imageId = imageId;
}

publicStringgetTitle() {
    return title;
}

publicvoidsetTitle(String title) {
    this.title = title;
}

public int getImageId() {
    return imageId;
}

publicvoidsetImageId(int imageId) {
    this.imageId = imageId;
}
}

then make a custom adapter :

publicclassadapterextendsBaseAdapter{
ArrayList<dataModel> allItems=newArrayList<>();
Context mContext;
publicadapter(Context ct, ArrayList<dataModel> allItems) {
    this.allItems = allItems;
    mContext=ct;
}

@OverridepublicintgetCount() {
    return allItems.size();
}

@Overridepublic Object getItem(int position) {
    return allItems.get(position);
}

@OverridepubliclonggetItemId(int position) {
    return0;
}

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
    // YOU SHOULD INFLATE A VIEW HERE
    View mView=View.inflate(mContext,R.id.YOUR_VIEW_ID,null);
    TextView mText= .... ;
    ImageView mImage= ... ;

    dataModel mModel=(dataModel) getItem(position);
    mText.setText(mModel.getTitle());
    mImage.setImageResource(mModel.getImageId());

    return mView;
}
}

in your activity do this:

 String[] displayCategories = new String[]{ CategoryDataSource.NAME};
int[] displayViews = newint[]{R.id.list_name};

// make an array list of dataModel Items
ArrayList<dataModel> data=new ArrayList<dataModel>();
for(int i=0;i<displayCategories.length;i++){
    data.add(new dataModel(displayCategories[i],displayViews[i]));
}

setListAdapter(new adapter(this,data));

Post a Comment for "How Do Add Images Next To Text Items In Listview In Android?"