Android: setImageresource mit Layoutinflater
-
26-10-2019 - |
Frage
Ich habe eine ListView, eine Haupt -XML -Datei und eine benutzerdefinierte XML -Datei. Für meine Liste verwende ich einen benutzerdefinierten Arrayadapter, den ich gemacht habe.
Jetzt möchte ich ein Bild als Ressource in meiner MainActivity -Klasse festlegen. Das Problem ist, dass sich das Bild in einem anderen XML befindet, nicht in diesem, was ich in ContentView festgelegt habe.
Ich versuche diesen Code, aber nichts passiert:
LayoutInflater mInflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
View view=mInflater.inflate(R.layout.custom_row_view,null);
ImageView statusOk=(ImageView)view.findViewById(R.id.statusOkImage);
statusOk.setImageResource(R.drawable.ic_launcher);
Wenn Sie sich für den gesamten Code interessieren, können Sie hier sehen:ImageView Setvissibility (0) und Nullzeiger -Ausnahme
Lösung
Ändern Sie Ihre GET -Methode im Basisadapter:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row_view, null);
holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.name);
holder.txtCityState = (TextView) convertView.findViewById(R.id.cityState);
holder.txtPhone = (TextView) convertView.findViewById(R.id.phone);
holder.statusOk=(ImageView)convertView.findViewById(R.id.imageView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
statusOk.setVisibility(View.VISIBLE);
holder.txtName.setText(searchArrayList.get(position).getName());
holder.txtCityState.setText(searchArrayList.get(position).getCityState());
holder.txtPhone.setText(searchArrayList.get(position).getPhone());
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView txtCityState;
TextView txtPhone;
ImageView statusOk;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow