我正在尝试创建一个图像列表,在其中我可以选择多个项目,我有一个是的图标,我想为我选择的任何项目设置可见(像复选框)并且在取消选择时不可见...我已将图像添加到xml文件中并设置其visibility as GONE
(因为它最初不应该可见)..请告诉我可能的解决方案..
我已设置list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
我的自定义BaseAdapter
类包含
public static class ViewHolder{
public TextView text;
public ImageView image,yesimage;
public TextView quantity;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
final ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.item, null);
holder=new ViewHolder();
holder.image=(ImageView)vi.findViewById(R.id.image);
holder.text=(TextView)vi.findViewById(R.id.text);
holder.quantity=(TextView)vi.findViewById(R.id.quantity);
holder.yesimage=(ImageView)vi.findViewById(R.id.selectedyes);
vi.setTag(holder);
}
else
holder=(ViewHolder)vi.getTag();
// Here I wanted to know how can i set visibility of yesimege for individual selected items on list
holder.text.setText(items[position]);
holder.image.setTag(data[position]);
holder.quantity.setText(Integer.toString(qty[position]).trim());
imageLoader.DisplayImage(data[position], activity, holder.image);
return vi;
}
xml snippet item.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="50dip"
android:layout_height="50dip"
android:src="@drawable/stub"
android:scaleType="centerCrop"/>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="left|center_vertical"
android:textSize="15dip"
android:typeface="sans"
android:textColor="#000000"
android:layout_marginLeft="10dip"/>
<TextView
android:id="@+id/quantity"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="right|center_vertical"
android:gravity="right"
android:paddingRight="10dp"
android:textSize="18dip"
android:typeface="sans"
android:textColor="#000000"/>
<ImageView android:id="@+id/selectedyes"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:visibility="gone"
android:src="@drawable/itemselected"
android:layout_marginRight="8dip"
android:soundEffectsEnabled="false" ></ImageView>
</LinearLayout>
答案 0 :(得分:0)
您必须保存/存储您的项目是否被选中。 之后,检查是否选择了该项目,并使用以下之一:
holder.image.setVisibility(View.GONE); // to make it disappear
或
holder.image.setVisibility(View.VISIBLE); // to display it
我不确切知道数据数组中的内容,但您可以将状态保存在那里。
if (data[position].isVisible()) {
holder.image.setVisibility(View.VISIBLE); // to display it
else
holder.image.setVisibility(View.GONE); // to make it disappear
您可以在ListView上设置OnItemClickListener来捕获点击事件。
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
// Put your custom code here
}
});
它能回答你的问题吗?