当前位置:编程学习 > wap >>

ListView里如何显示一个ImageView

这几天学习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>


--------------------编程问答-------------------- 自己再写个layout供ListView使用,
layout.main布局给AndroidListViewTextActivity使用,
不要混着~ --------------------编程问答-------------------- 额……没人回答啊 --------------------编程问答-------------------- 不要使用simpleadapter 用base的就可以了  --------------------编程问答-------------------- 要贴源码么! --------------------编程问答--------------------
new String[]{"imge","act_id","act_name"},   
错了改成image --------------------编程问答-------------------- LZ可以自己定义一个Adapter,继承自BaseAdapter的 --------------------编程问答-------------------- 第一步:ArrayList<HashMap<String, Object>> list
第二步:SimpleAdapter listItemAdapter
第三步:setAdapter(listItemAdapter); --------------------编程问答-------------------- 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);
--------------------编程问答-------------------- 昨天下班了,现在给你贴上代码:
@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方法可以用,自己优化。 --------------------编程问答-------------------- 不知道啊 楼主会了的话 记得分享下啊 --------------------编程问答-------------------- http://blog.csdn.net/aomandeshangxiao/article/details/6643831 
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,