[Изменено] Что-то вроде этого .. при нажатии на пункт метки добавляются с запятой, если есть пункт больше, чем два [и при повторном нажатии удаляет запись этикетки с запятой это то, что ив сделано до сих пор Примечание SeatP является TextView и seat_n выбран ярлык элемента из спискаКак добавить метку элемента при нажатии и удалить его при повторном нажатии разделителем элементов (,)?
List<Seats> seatsList;
GridView myGrid;
MyGridAdapter adapter;
TextView seatlabel,pricelabel;
ImageView im;
String st,seat_n,seatp;
myGrid = (GridView) findViewById (R.id.grid);
seatlabel = (TextView) findViewById(R.id.labelSeat);
pricelabel = (TextView) findViewById(R.id.labelPrice);
общественного недействительный updateMessage() {
adapter = new MyGridAdapter(getApplicationContext(),R.layout.seat_item,seatsList);
myGrid.setAdapter(adapter);
myGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
st = seatsList.get(position).getStatus();
seat_n = seatsList.get(position).getSeat_no();
p = seatsList.get(position).getPrice();
Log.d("price: ", p + "");
//Log.d("status: ", seat_n + "");
im = (ImageView) view.findViewById(R.id.seat1);
if (st.equalsIgnoreCase("available")) {
im.setImageResource(R.drawable.seat);
myStatus = true;
seatsList.get(position).setStatus("select");
Log.d("status 1: ",myStatus+"");
if (seatp.length()>1){
seatp = seatp+"," + seat_n;
}else {
seatp = seatp+ seat_n;
}
pr = pr+p;
seatlabel.setText(seatp.trim());
pricelabel.setText(Integer.toString(pr));
}
if(st.equalsIgnoreCase("select")) {
// Toast.makeText(getApplicationContext(), "seat: " + seatsList.get(position).getStatus(), Toast.LENGTH_SHORT).show();
im.setImageResource(R.drawable.seat_avv);
seatsList.get(position).setStatus("available");
pr = pr-p;
pricelabel.setText(Integer.toString(pr));
seatp= seatlabel.getText().toString();
//Log.d("seatlabel: ",ab);
//seatp= seatp.replace(seat_n, "");
if(seatp.length()>=5){
seatp= seatp.replace(","+seat_n, "");
}else {
seatp= seatp.replace(seat_n+",", "");
}
Log.d("seatp Length: ",seatp.length()+"");
/*if(seatp.length()>2){
seatp= seatp.replace(", "+seat_n, "");
Log.d("seatp Length2: ",seatp.length()+"");
}else{
seatp= seatp.replace(seat_n+", ", "");
Log.d("Deleting: ",seat_n+"");
seatp = "";
}*/
Log.d("seatabzz: ",seatp);
seatlabel.setText(seatp.trim());
}
}
});
}
Здесь логика хороша для 2 или более пунктов Но не работала для первого элемента