일단 제가 간단하게 만들어봤는데 단순하게 버튼 클릭시 랜덤하게 번호 좌석을 줍니다.
중복값을 비교할 대상이 뭔지 몰라서 그냥 배경색이 빨간색인 경우
그 자리는 이미 예약되었다라고 짜봤습니다.
근데 1-5번까지 모두 다 빨간색으로 변했을 경우에는 혹시
모든 좌석이 예약 되었습니다. 이런 메시지를 텍스트 뷰에 나타내는게 가능할까요?
그리고 배경색이 아닌 다른걸로 중복값을 찾을 수 있나요?
public class MainActivity extends AppCompatActivity {
Random Number;
String Rnumber = " ";
private TextView[]txt; // single dimensional array
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnFirst = (Button)findViewById(R.id.btnFirstClass);
btnFirst.setOnClickListener(new View.OnClickListener() {
LinearLayout l = (LinearLayout) findViewById(R.id.L1); // get the reference
@Override
public void onClick(View v) {
// String[] a = new String[5];
TextView result = (TextView)findViewById(R.id.txtResult);
txt = new TextView[5];
Number = new Random();
Rnumber = "0" + (Number.nextInt(5) +1);
for (int i = 0 ; i < l.getChildCount() ; i++) { //getChildCount() returns the # of Obj
txt[i] = (TextView) l.getChildAt(i);
ColorDrawable cd = (ColorDrawable)txt[i].getBackground();
if(Rnumber.equals(txt[i].getText()))
{
if(cd.getColor() == Color.RED)
{
Toast.makeText(MainActivity.this, txt[i].getText() + "this seat is booked", Toast.LENGTH_SHORT).show();
result.setText(Rnumber + "this seat is booked. click again");
break;
}
else
{
txt[i].setBackgroundColor(Color.RED);
result.setText("your seat is" + Rnumber);
}
}
// Toast.makeText(MainActivity.this, txt[i].getText() + " and " + Rnumber,Toast.LENGTH_SHORT).show();
}
}
});
}
}
제 프로그램 스샷은 다음과 같습니다.

