0
我想创建这个UI。如何在Android中的自定义ListView中添加图像?
在此的ListView,有4个变化每列表用品 -
1)特别优惠(图像视图) 2)名称(TextView的) 3)CompanyLogo的(ImageView的) 4 )功能(TextView)
我想仅在第一个列表项中显示特殊优惠图像视图,并在每个列表项中更改名称,公司徽标和特征。
如果我使用R.drawable.img1而不是错误更改模型字符串的Signature到图像View的int中,并且还会在setImageResource行中获取错误。 你能告诉我我该放什么“?”在Models.add()行?
我已经这样做了。
主要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;
}
}
我想使用我的drawable.How我可以使用setImageResource?请你给我发送代码。 –
我想在第一个列表中显示“abc”图像。在下一个列表项目中,我不想使用任何图像。您可以检查我的UI。我不想在下一个列表中使用优惠形象。如何添加Models.add中的数据(new Model())用于第一项空白并使用其他3个不同的项目? –