Я пытаюсь создать ListActivity, строки которого содержат текст и изображение. Но он показывает только значения одной строки, изображения и тексты других строк невидимы. Когда я отлаживаю код, их значения не равны нулю. Но он показывает строки, но не показывает эти значения текста и изображения на макете, кроме первой строки. Вот мой код:
public class SutList extends ListActivity implements XmlListener,OnItemClickListener{
XMLParser xmlParser;
@SuppressWarnings("rawtypes")
ArrayList sutList = new ArrayList();
ProgressDialog sutProgress;
XmlObjectAdapter xmlObj;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
xmlParser = new XMLParser("http://192.168.2.101/eczaplus/AndroidAPI/search.php?searchtype=drug_sut&keyword="+SharedItems.getInstance().clickedObject.map.get("id"));
xmlParser.addMyEventListener(this);
xmlParser.startAsyncTask();
getListView().setOnItemClickListener(this);
}
@Override
public void xmlParsed(XmlEvent evt) {
sutList = evt.ownerClient.children;
xmlObj = new XmlObjectAdapter(this, R.layout.esdegerilac, sutList);
setListAdapter(xmlObj);
}
@Override
public void preExecute(EventObject evt) {
sutProgress = new ProgressDialog(SutList.this);
sutProgress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
sutProgress = ProgressDialog.show(SutList.this,"", "");
}
@Override
public void postExecute(EventObject evt) {
sutProgress.dismiss();
}
private class XmlObjectAdapter extends ArrayAdapter<XmlObject> {
private ArrayList<XmlObject> items;
public XmlObjectAdapter(Context context, int textViewResourceId, ArrayList<XmlObject> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.sutlist, null);
}
XmlObject o = items.get(position);
// System.out.println(o.map.get("name"));
if (o != null) {
TextView ilacText = (TextView) findViewById(R.id.sutNameText);
ImageView sutImage = (ImageView) findViewById(R.id.sutImage);
//HashMap< String, String> atr = (HashMap<String, String>) o.map;
if (sutImage != null){
if (o.map.get("exists").equals("1"))
sutImage.setImageResource(R.drawable.ok);
else
sutImage.setImageResource(R.drawable.not_ok);
if (ilacText != null)
ilacText.setText(o.map.get("title"));
}
}
return v;
}
}
Надеюсь, вы поможете мне решить эту проблему.