0

I want to create this UI.

Work

In this ListView,There are 4 changes in every list item-

1)SPECIAL OFFER(Image View) 2)Name(TextView) 3)Companylogo(ImageView) 4)Feature(TextView)

I want to show special offers image view in only 1st list item and change name,company logo,Feature in every list item.

If I use R.drawable.img1 than error change Signature of Model string into int for image View and also get error in setImageResource line. Can u tell me what should I place "?" in Models.add() line?

I have done this.

Main Activity.java

public class MainActivity extends AppCompatActivity {
private static CustomAdapter adapter;
ArrayList<Model> Models;
ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = (ListView) findViewById(R.id.ls);
    Models = new ArrayList<>();
    Models.add(new Model("?", "PP AUTOMATIVES", "?", "Authorized"));
    Models.add(new Model("?", "CAR CARE MOTOR", "?", "MutliBrand"));
    Models.add(new Model("?", "CAR CARE MOTOR", "?", "MutliBrand"));
    Models.add(new Model("?", "CAR CARE MOTOR", "?", "MutliBrand"));
    adapter = new CustomAdapter(Models, getApplicationContext());
    listView.setAdapter(adapter);
}
}

CustomAdapter.java

   public class CustomAdapter extends ArrayAdapter<Model> {

Context mContext;
private ArrayList<Model> dataSet;

public CustomAdapter(ArrayList<Model> data, Context context) {
    super(context, R.layout.row_layout, data);
    this.dataSet = data;
    this.mContext = context;

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Model dataModel = getItem(position);
    ViewHolder viewHolder;
    if (convertView == null) {
        viewHolder = new ViewHolder();
        LayoutInflater inflater = LayoutInflater.from(getContext());
        convertView = inflater.inflate(R.layout.row_layout, parent, false);
        viewHolder.txtName = (ImageView) convertView.findViewById(R.id.name);
        viewHolder.txtType = (TextView) convertView.findViewById(R.id.type);
        viewHolder.txtVersion = (ImageView) convertView.findViewById(R.id.version_number);
        viewHolder.info = (TextView) convertView.findViewById(R.id.feature);
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();

    }
    viewHolder.txtName.setImageResource((dataModel.getName()));
    viewHolder.txtType.setText(dataModel.getSpecialoffer());
    viewHolder.txtVersion.setImageResource(((dataModel.getCompanylogo())));
    viewHolder.info.setText(dataModel.getFeature());
    return convertView;
}

private static class ViewHolder {
    ImageView txtName;
    TextView txtType;
    ImageView txtVersion;
    TextView info;
}
}

Model.java

 public class Model {
String specialoffer;
String name;
String companylogo;
String feature;

public Model(String specialoffer, String name, String companylogo, String feature) {
    this.specialoffer = specialoffer;
    this.name = name;
    this.companylogo = companylogo;
    this.feature = feature;
}

public String getSpecialoffer() {
    return specialoffer;
}

public void setSpecialoffer(String specialoffer) {
    this.specialoffer = specialoffer;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getCompanylogo() {
    return companylogo;
}

public void setCompanylogo(String companylogo) {
    this.companylogo = companylogo;
}

public String getFeature() {
    return feature;
}

public void setFeature(String feature) {
    this.feature = feature;
}
}

1 Answer 1

1

If you have your image url . then add string to model and use picasso

Picasso.
  with(context).
  load(imageurl).
  into(imageview);

If you want to use your drawables then you and use setImageResource(int)

Model(int,string,string,string)

    Model.class
    Models.add(new Model(R.drawable.abc, "PP AUTOMATIVES", "?", "Authorized"));

    Adapter.class
    viewHolder.txtName.setImageResource((dataModel.getName()));
Sign up to request clarification or add additional context in comments.

2 Comments

I want to use my drawable.How can I use setImageResource?Can u send me code please.
I want to show "abc" image in only 1st list.In next list item I don't want to use any image.You can check my UI.I don't want to use offers image in next list.How I add data in Models.add(new Model()) for 1st item blank and use other 3 different item?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.