собрать часть кода в цикл

Интерфейс, диалоги, темы, стили, меню
Закрыто
DeMoZ
Сообщения: 17
Зарегистрирован: 26 мар 2013, 05:10

собрать часть кода в цикл

Сообщение DeMoZ » 30 мар 2013, 13:59

есть немного кода

Код: Выделить всё

//определения лэйоутов
		arrrlDc[0]=(RelativeLayout)findViewById(R.id.rlDc0);
		arrrlDc[1]=(RelativeLayout)findViewById(R.id.rlDc1);
		arrrlDc[2]=(RelativeLayout)findViewById(R.id.rlDc2);
		arrrlDc[3]=(RelativeLayout)findViewById(R.id.rlDc3);
		arrrlDc[4]=(RelativeLayout)findViewById(R.id.rlDc4);
		arrrlDc[5]=(RelativeLayout)findViewById(R.id.rlDc5);
		arrrlDc[6]=(RelativeLayout)findViewById(R.id.rlDc6);
		arrrlDc[7]=(RelativeLayout)findViewById(R.id.rlDc7);
		arrrlDc[8]=(RelativeLayout)findViewById(R.id.rlDc8);
		arrrlDc[9]=(RelativeLayout)findViewById(R.id.rlDc9);
		
		//определения кнопок
		arrbCdPlusEx[0]=(Button)findViewById(R.id.bCdPlusEx0);
		arrbCdPlusEx[1]=(Button)findViewById(R.id.bCdPlusEx1);
		arrbCdPlusEx[2]=(Button)findViewById(R.id.bCdPlusEx2);
		arrbCdPlusEx[3]=(Button)findViewById(R.id.bCdPlusEx3);
		arrbCdPlusEx[4]=(Button)findViewById(R.id.bCdPlusEx4);
		arrbCdPlusEx[5]=(Button)findViewById(R.id.bCdPlusEx5);
		arrbCdPlusEx[6]=(Button)findViewById(R.id.bCdPlusEx6);
		arrbCdPlusEx[7]=(Button)findViewById(R.id.bCdPlusEx7);
		arrbCdPlusEx[8]=(Button)findViewById(R.id.bCdPlusEx8);
		arrbCdPlusEx[9]=(Button)findViewById(R.id.bCdPlusEx9);
		
		for(int i=0;i<arrbCdPlusEx.length;i++){
			arrbCdPlusEx[i].setOnClickListener(this);
		//----------	
			
		}
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch (v.getId()){
		case R.id.bCdPlusEx0:
			arrrlDc[1].setVisibility(View.VISIBLE);
			break;	
		case R.id.bCdPlusEx1:
			arrrlDc[2].setVisibility(View.VISIBLE);
			break;	
		case R.id.bCdPlusEx2:
			arrrlDc[3].setVisibility(View.VISIBLE);
			break;	
		case R.id.bCdPlusEx3:
			arrrlDc[4].setVisibility(View.VISIBLE);
			break;	
		case R.id.bCdPlusEx4:
			arrrlDc[5].setVisibility(View.VISIBLE);
			break;
		case R.id.bCdPlusEx5:
			arrrlDc[6].setVisibility(View.VISIBLE);
			break;	
		case R.id.bCdPlusEx6:
			arrrlDc[7].setVisibility(View.VISIBLE);
			break;
		case R.id.bCdPlusEx7:
			arrrlDc[8].setVisibility(View.VISIBLE);
			break;	
		case R.id.bCdPlusEx8:
			arrrlDc[9].setVisibility(View.VISIBLE);
			break;	
			
		
		default:
			break;
		
		}
		
	}
видно что в onClick происходит следущее
(псевдокод): если кликнуть по кнопке arrbCdPlusEx , то лэйоут arrrlDc[i+1].VISIBLE

тоесть, в данном случае мне надо использовать не v.getId(), а получить номер нажатой кнопки из массива (i), или получить имя переменной, а дальше в цикле сравнить во всеми элементами массива и узнать номер элемена. Потом уже arrrlDc[i+1].VISIBLE


как это сделать?

DeMoZ
Сообщения: 17
Зарегистрирован: 26 мар 2013, 05:10

Re: собрать часть кода в цикл

Сообщение DeMoZ » 30 мар 2013, 14:17

очень просто:

@Override
public void onClick(View v) {

Button anyButton=(Button)findViewById( v.getId());
for(i=0;i<arrbCdPlusEx.length;i++){
if(anyButton==arrbCdPlusEx){
arrrlDc[i+1].setVisibility(View.VISIBLE);
}


}

Закрыто