我想在item中实现左边是textView,右边是ImageView。但是运行没有显示!下面是代码package com.hzg.listviewexemple;import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;public class MainActivity extends Activity {
 private ListView mListView; @Override
public void onCreate(Bundle savedInstanceStated) {
super.onCreate(savedInstanceStated);
setContentView(R.layout.list_view);
 mListView = (ListView) findViewById(R.id.list_view);
 mListView.setAdapter(new CustomListAdapter(this));
} class CustomListAdapter extends BaseAdapter {
 private LayoutInflater mInflater;
 private Context mContext = null;

public CustomListAdapter(Context context) {
mContext = context;
mInflater = LayoutInflater.from(mContext);
} public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
} public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} public int getCount() {
// TODO Auto-generated method stub
return 0;
} public View getView(int position, View convertView, android.view.ViewGroup parent) {
final ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = mInflater.inflate(R.layout.item_custom, null); viewHolder.menuImage= (ImageView) convertView.findViewById(R.id.menu_image_id); viewHolder.menuText = (TextView) convertView.findViewById(R.id.menu_text_id); convertView.setTag(viewHolder); } 
else {
viewHolder = (ViewHolder) convertView.getTag();
}
return convertView;
}
} public class ViewHolder {
public TextView menuText;
public ImageView menuImage;
}
}list_view.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:orientation="vertical" >    <ListView
        android:id="@+id/list_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" /></LinearLayout>
item_custom.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal" >    <TextView
        android:id="@+id/menu_text_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:textSize="20dip" /> <ImageView
     android:id="@+id/menu_image_id"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="100dip"
     android:src="@drawable/ic_launcher" /></LinearLayout>

解决方案 »

  1.   

    public int getCount() {
                // TODO Auto-generated method stub
                return 0;
            }返回0了,说明一条数据都没有,当然看不到东西
      

  2.   

    你要往CustomListAdapter 放些数据显示啊
      

  3.   


    这个函数返回的是listview的item的条数先return 1 试试,这样应该就能看到一条数据了。为了能够看到自己的数据,你还得在getview中,
    viewHolder.menuText.setText("tttttttttttt");
    viewHolder.menuImage.setImageXXX
      

  4.   

    在item中能添加一个ListView控件吗?相当于ListView中又有ListView?
      

  5.   


    package com.hhb.listviewexemple;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.Spinner;
    import android.widget.TextView;public class MainActivity extends Activity {
     private ListView mListView;
     private List<Map<String, Object>> data;
     
    @Override
    public void onCreate(Bundle savedInstanceStated) {
    super.onCreate(savedInstanceStated);
    setContentView(R.layout.list_view);
    data = getData();
    mListView = (ListView) findViewById(R.id.list_view_id);
    mListView.setAdapter(new CustomListAdapter(this));

    }

    private List<Map<String, Object>> getData()
        {
            List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
            Map<String, Object> map;
            for(int i=0;i<5;i++)
            {
                map = new HashMap<String, Object>();
                map.put("menuText", "Menu List");
                map.put("menuImage", R.drawable.ic_launcher);
                list.add(map);
            }
            return list;
        }

    class CustomListAdapter extends BaseAdapter {
     private LayoutInflater mInflater;
     private Context mContext = null;

    public CustomListAdapter(Context context) {
    mContext = context;
    mInflater = LayoutInflater.from(mContext);
    } public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
    } public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
    } public int getCount() {
    // TODO Auto-generated method stub
    return data.size();
    } public View getView(int position, View convertView, android.view.ViewGroup parent) {
    final ViewHolder viewHolder;
    if (convertView == null) {
    viewHolder = new ViewHolder();
    convertView = mInflater.inflate(R.layout.item_custom, null); viewHolder.menuImage= (ImageView) convertView.findViewById(R.id.menu_image_id);
    viewHolder.menuText = (TextView) convertView.findViewById(R.id.menu_text_id);
    viewHolder.mSpinner = (Spinner) convertView.findViewById(R.id.menu_spinner_id);
    convertView.setTag(viewHolder);

    else {
    viewHolder = (ViewHolder) convertView.getTag();
    }
    viewHolder.menuText.setText((String) data.get(position).get("menuText"));
    viewHolder.menuImage.setBackgroundResource((Integer) data.get(position).get("menuImage"));
    return convertView;
    }
    } public class ViewHolder {
    public TextView menuText;
    public ImageView menuImage;
    public Spinner mSpinner; 
    }
    }
    怎样在item中添加spinner控件??我在上面添加没有实现spinner功能
      

  6.   

    ArrayAdapter<String> Adapter = new ArrayAdapter<String>(this,
    android.R.layout.simple_spinner_item, 数组);
    spinner.setAdapter(Adapter);
    // 设置弹出的样式
    Adapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      

  7.   

    我这样弄还是没有spinner在上面出现package com.hhb.listviewexemple;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;import android.app.Activity;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemSelectedListener;
    import android.widget.ArrayAdapter;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.Spinner;
    import android.widget.TextView;public class MainActivity extends Activity {
     private ListView mListView;
     private List<Map<String, Object>> data;
     private ArrayAdapter<String> adapter;  
     private static final String[] m={"A","B","O","AB","Other"};  
     
    @Override
    public void onCreate(Bundle savedInstanceStated) {
    super.onCreate(savedInstanceStated);
    setContentView(R.layout.list_view);
    data = getData();
    adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m); 
    mListView = (ListView) findViewById(R.id.list_view_id);
    mListView.setAdapter(new CustomListAdapter(this));
    }

    private List<Map<String, Object>> getData()
        {
            List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
            Map<String, Object> map;
            for(int i=0;i<5;i++)
            {
                map = new HashMap<String, Object>();
                map.put("menuText", "Menu List");
                map.put("menuImage", R.drawable.ic_launcher);
                list.add(map);
            }
            return list;
        }

    class CustomListAdapter extends BaseAdapter {
     private LayoutInflater mInflater;
     private Context mContext = null;

    public CustomListAdapter(Context context) {
    mContext = context;
    mInflater = LayoutInflater.from(mContext);
    } public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
    } public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
    } public int getCount() {
    // TODO Auto-generated method stub
    return data.size();
    } public View getView(int position, View convertView, android.view.ViewGroup parent) {
    final ViewHolder viewHolder;
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    if (convertView == null) {
    viewHolder = new ViewHolder();
    convertView = mInflater.inflate(R.layout.item_custom, null); viewHolder.menuImage= (ImageView) convertView.findViewById(R.id.menu_image_id);
    viewHolder.menuText = (TextView) convertView.findViewById(R.id.menu_text_id);
    viewHolder.mSpinner = (Spinner) convertView.findViewById(R.id.menu_spinner_id);
    convertView.setTag(viewHolder);

    else {
    viewHolder = (ViewHolder) convertView.getTag();
    }
    viewHolder.menuText.setText((String) data.get(position).get("menuText"));
    viewHolder.menuImage.setBackgroundResource((Integer) data.get(position).get("menuImage"));
    viewHolder.mSpinner.setAdapter(adapter);  
    viewHolder.mSpinner.setVisibility(View.VISIBLE);  
    viewHolder.mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    } public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

    }
    }); 
    return convertView;
    }
    public class ViewHolder {
    public TextView menuText;
    public ImageView menuImage;
    public Spinner mSpinner; 
    }
    }
    }
      

  8.   

    去掉这句这就可以了 viewHolder.mSpinner.setVisibility(View.VISIBLE);