2011-10-25 76 views
0

我想創建一個ListActivity,其行包含文本和圖像。但它只顯示一行的值,其他行的圖像和文本是不可見的。當我調試代碼時,它們的值不爲空。但它顯示行,但不在佈局上顯示除第一行外的這些文本和圖像值。這裏是我的代碼:只有一行出現在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; 
    } 
} 

希望你能幫我弄清楚解決這個問題。

回答

2

在getView()你XmlObjectAdapter我相信你想

v.findViewById() 

不僅僅是

findViewById() 
+0

感謝布倫德爾現在的工作:) – wetwork