替换OnItemClick上的GridView项

时间:2015-05-26 05:20:00

标签: java android

enter image description here

我必须将GridView的单击位置中的白色图像替换为绿色,以指示在onItemClickListener方法中选择它。我已经使用自定义适配器在我的网格中首先预览图像。我该怎么做才能更改所选图像的图像。

  gridView.setAdapter(new CustomGridViewAdapter(ctx, R.layout.seatrow_grid, seat_list));

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
                String selectedItem;
                Seat_Availabe st_av = (Seat_Availabe) arg0.getItemAtPosition(position);
                if ((st_av.getAvailable().equals("true")) && (st_av.getLadiesSeat().equals("false"))) {


                }
                else{
                    Toast.makeText(getApplicationContext(), "Already Booked", Toast.LENGTH_LONG).show();
                }
            }
        });

我的适配器类首先设置图像

public class CustomGridViewAdapter extends ArrayAdapter<Seat_Availabe>
{

Context context;
int layoutResourceId;
List<Seat_Availabe> data = new ArrayList<Seat_Availabe>();

public CustomGridViewAdapter(Context context, int layoutResourceId, List<Seat_Availabe> data)
{
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}


@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    View row = convertView;
    RecordHolder holder = null;

    if (row == null)
    {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new RecordHolder();

        holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
        row.setTag(holder);
    }
    else
    {
        holder = (RecordHolder) row.getTag();
    }

    Seat_Availabe seat = data.get(position);
    String avail  = seat.getAvailable();
    String ladies = seat.getLadiesSeat();
    if ((seat.getAvailable().equals("true")) && (seat.getLadiesSeat().equals("false"))) {

           holder.imageItem.setImageResource(R.drawable.white);

        }
        else if((seat.getAvailable().equals("false")) && (seat.getLadiesSeat().equals("true")))
        {
            holder.imageItem.setImageResource(R.drawable.pink);

        }
        else if(seat.getAvailable().equals("false")){

        holder.imageItem.setImageResource(R.drawable.gray);
        }
    else if(seat.getAvailable().equals("NA")){

        holder.imageItem.setImageResource(R.drawable.whitenew);

    }
        else{

            holder.imageItem.setImageResource(R.drawable.gray);
        }


    return row;
}

public static class RecordHolder
{

    public ImageView imageItem;

}


 }

1 个答案:

答案 0 :(得分:0)

我想你在click事件的变量v中得到了view对象,你可以通过以下方式设置视图的图像:

v.setBackgroundResource(R.drawable.filename);//add your filename here