我想在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>
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>
// TODO Auto-generated method stub
return 0;
}返回0了,说明一条数据都没有,当然看不到东西
这个函数返回的是listview的item的条数先return 1 试试,这样应该就能看到一条数据了。为了能够看到自己的数据,你还得在getview中,
viewHolder.menuText.setText("tttttttttttt");
viewHolder.menuImage.setImageXXX
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功能
android.R.layout.simple_spinner_item, 数组);
spinner.setAdapter(Adapter);
// 设置弹出的样式
Adapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
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;
}
}
}