我正在尝试创建一个ListActivity,其行包含文本和图像。但它只显示一行的值,其他行的图像和文本是不可见的。当我调试代码时,它们的值不为null。但是它显示了行,但是除了第一行之外没有在布局上显示这些文本和图像值。这是我的代码:
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;
}
}
希望你能帮我解决这个问题。
答案 0 :(得分:2)
在getView()的XmlObjectAdapter中,我相信你想要
v.findViewById()
不仅仅是
findViewById()