<?xml version="1.0" encoding="utf-8"?>
testlist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:id="@+id/LinearLayout01"> <TextView android:id="@+id/TestList_TextViewTitle"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:text="@string/testlist_title" /> <ListView android:id="@+id/TestList_ListView01"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:stackFromBottom="true" android:layout_weight="1">
</ListView></LinearLayout>
listlayout1.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/listlayout1_img"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_margin="5px" />
<LinearLayout android:orientation="vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/listlayout1_title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="#FFFFFFFF" android:textSize="22px" />
<TextView android:id="@+id/listlayout1_info"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="#FFFFFFFF" android:textSize="13px" />
</LinearLayout>
</LinearLayout>代码部分: @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.testlist);

TextView _TextView = (TextView) findViewById(R.id.TestList_TextViewTitle);
ListView _ListView = (ListView) findViewById(R.id.TestList_ListView01); // 添加并且显示
BaseAdapter _BaseAdapter = getAdapter2();
  _ListView.setAdapter(_BaseAdapter);
 
// 添加点击
  _ListView.setOnItemClickListener(new OnItemClickListener() 
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
setTitle("点击第" + arg1 + " " + arg2 + " " + arg3 + "个项目");

}             
}); 

// 添加长按点击
  _ListView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
menu.setHeaderTitle("长按菜单-ContextMenu");
menu.add(0, 0, 0, "弹出长按菜单0");
menu.add(0, 1, 0, "弹出长按菜单1");
}
});
 
  setListAdapter(getAdapter());
} private BaseAdapter getAdapter2() {
        //生成动态数组,加入数据  
        ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();  
        for(int i=0;i<10;i++)
        {
            HashMap<String, Object> map = new HashMap<String, Object>();  
            map.put("ItemImage", R.drawable.icon);//图像资源的ID  
            map.put("ItemTitle", "Level "+i);  
            map.put("ItemText", "Finished in 1 Min 54 Secs, 70 Moves! ");  
            listItem.add(map);  
        }
                
        //生成适配器的Item和动态数组对应的元素  
        final SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源   
            R.layout.listlayout2,//ListItem的XML实现  
            //动态数组与ImageItem对应的子项          
            new String[] {"ItemImage","ItemTitle", "ItemText"},   
            //ImageItem的XML文件里面的一个ImageView,两个TextView ID  
            new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}  
        );        return listItemAdapter;
        
}

解决方案 »

  1.   

    我觉得LZ还是安装apidemos里的list例子来做吧,也好维护。自己继承base来实现一个adapter
      

  2.   

    感觉是细节问题,我拿demo改的时候,遇到过两次因为细节而导致不能正常运行
      

  3.   

    你这个要求,必须要自己实现adapter,android框架自带的adapter只支持字符串。
      

  4.   

    把Adapter封装成一个类试试看!
      

  5.   

    还是需要多看看SDK 的API。
      

  6.   

    这里怎么还有一个setListAdapter(getAdapter());??
      

  7.   

    你把这部份的代码也帖出来看下,还有你可以用eclipse的debug功能来设置断点根踪每一步的执行过程。
      

  8.   


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"><LinearLayout android:orientation="horizontal"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
    <ImageView android:id="@+id/imgsmall" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_margin="5px"/>
    </LinearLayout>
    <LinearLayout android:orientation="horizontal"
    android:layout_width="665px" 
    android:layout_height="wrap_content">
    <LinearLayout android:orientation="horizontal"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
    <TextView android:id="@+id/txt1" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF"
    android:text="名  称:"
    android:textSize="22px" />
    <TextView android:id="@+id/txtname" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF"
    android:textSize="22px" />
    <TextView android:id="@+id/txt2" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF"
    android:text="价  格:"
    android:textSize="13px" />
    <TextView android:id="@+id/txtprice" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF"
    android:textSize="22px" />
    </LinearLayout>
    <LinearLayout android:orientation="horizontal"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
    <TextView android:id="@+id/txt3" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF"
    android:text="类  别:"
    android:textSize="22px" />
    <TextView android:id="@+id/txtmsecondid" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF"
    android:textSize="22px" />
    </LinearLayout>
    </LinearLayout>
    <LinearLayout android:orientation="horizontal"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    >
    <Button android:id="@+id/btselect"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|top" 
    android:text="详  细"
    />
    <Button android:id="@+id/btinsert"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" 
    android:text="预  定"
    />
    </LinearLayout>
    </LinearLayout>package com.yookey.activity;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import com.yookey.activity.MainActivity.ClickEvent;
    import com.yookey.activity.MainActivity.ItemClickListener;
    import com.yookey.dal.DDineManager;
    import com.yookey.model.DDine;
    import com.yookey.model.MFirst;
    import com.yookey.model.MSecond;import android.app.ListActivity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.GridView;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;public class ShowCookbookActivity extends ListActivity {
    List<DDine> ddinelist=null;
    private List<Map<String, Object>> mData;
    Class<com.yookey.activity.R.drawable> cls = R.drawable.class;
    DDineManager ddm=new DDineManager();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    ddinelist=ddm.GetDdinelist(getIntent().getStringExtra("autoid"));
    mData = getData();
    MyAdapter adapter = new MyAdapter(this);
    setListAdapter(adapter);
    }



    private List<Map<String, Object>> getData() {
    List<Map<String, Object>> datalist = new ArrayList<Map<String, Object>>();
     for(DDine dd : ddinelist){
          HashMap<String, Object> map = new HashMap<String, Object>(); 
          Integer imgid=0;
          try {
          imgid = cls.getDeclaredField(dd.getDineImgSmall()).getInt(null);
                                 
                   } catch (Exception e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                   }
             map.put("imgsmall", imgid);
             map.put("txtname", dd.getDineName());
             map.put("txtprice", dd.getDinePrice());
             map.put("txtmsecondid", dd.getmSecondId());
            map.put("autoid", dd.getAutoId());
            datalist.add(map);   
          }
     return datalist;
    }


    public final class ViewHolder{
    public ImageView imgsmall;
    public TextView txtname;
    public TextView txtprice;
    public TextView txtmsecondid;
    public TextView txt1;
    public TextView txt2;
    public TextView txt3;
    public Button btselect;
    public Button btinsert;
    }



    public class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater;


    public MyAdapter(Context context){
    this.mInflater = LayoutInflater.from(context);
    }
    @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return mData.size();
    } @Override
    public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return null;
    } @Override
    public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return 0;
    } @Override
    public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder = null;
    if (convertView == null) {

    holder=new ViewHolder();  
    convertView = mInflater.inflate(R.layout.cookbooklist, null);
    holder.imgsmall = (ImageView)convertView.findViewById(R.id.imgsmall);
    holder.txtname = (TextView)convertView.findViewById(R.id.txtname);
    holder.txtprice = (TextView)convertView.findViewById(R.id.txtprice);
    holder.txt1 = (TextView)convertView.findViewById(R.id.txt1);
    holder.txt2 = (TextView)convertView.findViewById(R.id.txt2);
    holder.txt3 = (TextView)convertView.findViewById(R.id.txt3);
    holder.txtmsecondid = (TextView)convertView.findViewById(R.id.txtmsecondid);
    holder.btselect = (Button)convertView.findViewById(R.id.btselect);
    holder.btinsert = (Button)convertView.findViewById(R.id.btinsert);
    convertView.setTag(holder);

    }else {

    holder = (ViewHolder)convertView.getTag();
    }


    holder.imgsmall.setBackgroundResource((Integer)mData.get(position).get("imgsmall"));
    holder.txtname.setText((String)mData.get(position).get("txtname"));
    holder.txtmsecondid.setText((String)mData.get(position).get("txtmsecondid"));
    holder.txtprice.setText((String)mData.get(position).get("txtprice"));

    //可以保存ID值
    holder.btselect.setOnClickListener(new Select());
    holder.btselect.setTag((String)mData.get(position).get("txtname"));
    holder.btinsert.setOnClickListener(new Insert());
    holder.btinsert.setTag((String)mData.get(position).get("autoid"));



    return convertView;
    }

    }
    class Select implements View.OnClickListener{   
         
            @Override  
            public void onClick(View v) {
               setTitle(v.getTag().toString());
        } 
      }

      class Insert implements View.OnClickListener{   
           
            @Override  
            public void onClick(View v) {
              setTitle(v.getTag().toString());
        } 
      }
    }
    再不会呢,就是智商问题了...
    我直接给你项目源代码了...