这几天学习android的ListView控件,想在ListView里布局显示一个ImageView和TextView,TextView里的内容能显示出来,可是ImageView不显示,google了很久也找不出原因 还请赐教!先谢啦
这是我的java代码和xml文件
public class AndroidListViewTextActivity extends Activity{
ListView m_ListView;
ImageView m_ImageView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        m_ListView=new ListView(this);
       // setContentView(R.layout.main);
       // m_ListView=(ListView)findViewById(R.id.widget43);
        //m_ImageView.setImageDrawable(getResources().getDrawable(R.drawable.icon));
        SimpleAdapter adapter0 = new SimpleAdapter
 (this,getActRescoure("1","CCTV1","2","CCTV2","3","甘肃卫视"),
  R.layout.main,
                new String[]{"imge","act_id","act_name"},   
                 new int[]{R.id.widget37,R.id.widget41,R.id.widget40});   
           
       m_ListView.setAdapter(adapter0);
       setContentView(m_ListView);
       
    }
    
 
    private List<Map<String, Object>> getActRescoure
    (String id1,String name1,String id2,String name2,String id3,String name3)
    {
     List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
    
     Map<String, Object> map0=new HashMap<String, Object>();
     map0.put("image", R.drawable.icon);
     map0.put("act_id", id1);
     map0.put("act_name", name1);
     //map0.put("image", R.drawable.icon);
     list.add(map0);
     HashMap<String, Object> map1=new HashMap<String, Object>();
     map1.put("image", R.drawable.icon);
     map1.put("act_id", id2);
     map1.put("act_name", name2);
    // map1.put("image", getResources().getDrawable(R.drawable.icon));
     list.add(map1);
     HashMap<String, Object> map2=new HashMap<String, Object>();
     map2.put("image", R.drawable.icon);
     map2.put("act_id", id3);
     map2.put("act_name", name3);
   //  map2.put("image", getResources().getDrawable(R.drawable.icon));
     list.add(map2);
     return list;
    }
}<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/widget36"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ImageView
android:id="@+id/widget37"
android:src="@drawable/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ImageView>
<LinearLayout
android:id="@+id/widget38"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/widget41"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
>
</TextView>
<TextView
android:id="@+id/widget40"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
>
</TextView>
</LinearLayout>
</LinearLayout>

解决方案 »

  1.   

    自己再写个layout供ListView使用,
    layout.main布局给AndroidListViewTextActivity使用,
    不要混着~
      

  2.   

    不要使用simpleadapter 用base的就可以了 
      

  3.   

    new String[]{"imge","act_id","act_name"},   错了改成image
      

  4.   

    LZ可以自己定义一个Adapter,继承自BaseAdapter的
      

  5.   

    第一步:ArrayList<HashMap<String, Object>> list
    第二步:SimpleAdapter listItemAdapter
    第三步:setAdapter(listItemAdapter);
      

  6.   

    SimpleAdapter adapter0 = new SimpleAdapter
    (this,getActRescoure("1","CCTV1","2","CCTV2","3","甘肃卫视"),
    R.layout.main,
    new String[]{"imge","act_id","act_name"},   
    .....Map<String, Object> map0=new HashMap<String, Object>();
      map0.put("image", R.drawable.icon);//这里错了,这3个String要一一对应
      map0.put("act_id", id1);
      map0.put("act_name", name1);
      

  7.   

    昨天下班了,现在给你贴上代码:
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            m_ListView = (ListView) findViewById(R.id.list01);
            SimpleAdapter adapter0 = new SimpleAdapter(this, getActRescoure("1",
                    "CCTV1", "2", "CCTV2", "3", "甘肃卫视"), R.layout.list,
                    new String[] { "image", "act_id", "act_name" }, new int[] {
                            R.id.widget37, R.id.widget41, R.id.widget40 });        m_ListView.setAdapter(adapter0);
        }
    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/widget36"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >    <ListView
            android:id="@+id/list01"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </ListView></LinearLayout>
    list.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/widget36"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >    <ImageView
            android:id="@+id/widget37"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </ImageView>    <TextView
            android:id="@+id/widget41"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" >
        </TextView>    <TextView
            android:id="@+id/widget40"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" >
        </TextView></LinearLayout>
    getActRescoure方法可以用,自己优化。
      

  8.   

    http://blog.csdn.net/aomandeshangxiao/article/details/6643831