自定義列表視圖中的每個項目相關聯的複選框我有自定義列表與它的名字像下面顯示的圖片如何爲延伸BaseAdapter
public class LazyAdapter extends BaseAdapter {
private Activity activity;
private String[] data;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
public LazyAdapter(Activity a, String[] d) {
activity = a;
data=d;
inflater =
(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder{
public TextView text;
public ImageView image,yesimage;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.item, null);
holder=new ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.text);;
holder.image=(ImageView)vi.findViewById(R.id.image);
holder.yesimage=(ImageView)vi.findViewById(R.id.selectedyes);
vi.setTag(holder);
}
else
holder=(ViewHolder)vi.getTag();
holder.text.setText("item "+position);
holder.image.setTag(data[position]);
holder.yesimage.setTag(data[position]);
imageLoader.DisplayImage(data[position], activity, holder.image,holder.yesimage);
return vi;
}
}
這個名單我想設置,
list=(ListView)findViewById(R.id.list);
adapter=new LazyAdapter(this, mStrings);//mstrings is array
list.setAdapter(adapter);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
在那裏爲我能夠用得到所有選中的列表項,
list.setOnItemClickListener(new OnItemClickListener(){
TextView selected=(TextView)findViewById(R.id.selected);
final ArrayList<String> years = new ArrayList<String>();
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
SparseBooleanArray checked = list.getCheckedItemPositions();
if(checked.get(arg2))
{
years.add(""+mStrings[arg2]+"\n");
}
else
{
years.remove(" "+mStrings[arg2]+"\n");
}
if(years.size()!=0)
selected.setText(years.toString());
else
selected.setText("You Have Nothing in Cart");
}});
,但沒有指示列表所選擇的項目進行檢查,它只是認爲作爲選擇,在這裏我無法用點擊項目,
list.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, mStrings));
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
因爲我的名單擴展BaseAdapter,
我想提出的複選框,每行的清單,確保該項目被檢查一次,我檢查列表項目,我該怎麼做......?
謝謝帕雷什,它絕對是我想要的... – user1065490 2011-12-26 12:09:58
@ user1065490很高興我的回答很有幫助。 – 2011-12-26 12:53:20
如何在列表中顯示某些圖像時,我選擇列表中的一個項目.. if(convertView.isSelected()) \t holder.yesimage.setVisibility(View.VISIBLE);其他 \t holder.yesimage.setVisibility(View.GONE); 我試圖在getView()方法中的代碼,但圖像只有一次,當我第一次點擊任何項目時可見..即使我檢查單個項目,圖像也變得可見所有項目的項目... – user1065490 2011-12-26 13:09:48