Foenix писал(а):почему? это просто оператор приведения к типу, но это ставится в том случае, если у тебя в объекте сто 100% целое число записано.
А раз ты туда целое записал.. то так тоже можно.
Получается вот такой экранчик. Вроде все работает. Но мне не нравится, что эмулятор думает где то секунду перед тем как все эти кнопки создать. Не знаете как можно облегчить это дело?)
[syntax=java]public class GameActivity extends Activity implements OnClickListener {
final String LOG_TAG = "myLogs";
Button BTBack, BTPause, BTRestart, BTLeft, BTCenter, BTRight, btnOld;
RelativeLayout LGame;
LinearLayout LCenter;
int MyColor;
int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;
int fillParent = LinearLayout.LayoutParams.FILL_PARENT;
static final int tagActive = 1,tagPassive = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
Intent IntentOpt = getIntent();
MyColor = IntentOpt.getIntExtra("BackColorGame", MyColor);
LGame = (RelativeLayout) findViewById(R.id.LGame);
LGame.setBackgroundColor(MyColor);
BTBack = (Button) findViewById(R.id.BTBack);
BTPause = (Button) findViewById(R.id.BTPause);
BTRestart = (Button) findViewById(R.id.BTRestart);
BTLeft = (Button) findViewById(R.id.BTLeft);
BTCenter = (Button) findViewById(R.id.BTCenter);
BTRight = (Button) findViewById(R.id.BTRight);
BTBack.setOnClickListener(this);
BTPause.setOnClickListener(this);
BTRestart.setOnClickListener(this);
BTLeft.setOnClickListener(this);
BTCenter.setOnClickListener(this);
BTRight.setOnClickListener(this);
LCenter = (LinearLayout) findViewById(R.id.LCenter);
LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(fillParent, fillParent);
LinearLayout.LayoutParams llParams = new LinearLayout.LayoutParams(wrapContent, wrapContent);
btnParams.gravity = Gravity.CENTER_HORIZONTAL;
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int MyWidth = display.getWidth();
int MyHeight = display.getHeight();
btnParams.height = MyWidth/9;
btnParams.weight = 1;
for (int j=0; j<9; j++)
{
LinearLayout LNew = new LinearLayout(this);
LCenter.addView(LNew, llParams);
for (int i=0;i<9;i++)
{
Button btnNew = new Button(this);
btnNew.setText(String.valueOf(j*9+i+1));
btnNew.setTag(tagPassive);
OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
BTCenter.setText(String.valueOf(v.getTag()));
Log.d(LOG_TAG, "0" );
Resources res = getResources();
Drawable Active = res.getDrawable(R.drawable.button_background2);
Drawable Passive = res.getDrawable(R.drawable.button_background);
int TagToInt = (Integer)v.getTag();
if (TagToInt==1)
{
v.setTag(tagPassive);
v.setBackgroundDrawable(Passive);
}
else
{
if ((btnOld = (Button) LCenter.findViewWithTag (tagActive)) != null)
{
btnOld.setBackgroundDrawable(Passive);
btnOld.setTag(tagPassive);
}
v.setTag(tagActive);
v.setBackgroundDrawable(Active);
}
BTRight.setText(String.valueOf(v.getTag()));
}
};
btnNew.setOnClickListener(oclBtnOk);
Drawable background = this.getResources().getDrawable(R.drawable.button_background);
btnNew.setBackgroundDrawable(background);
LNew.addView(btnNew, btnParams);
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.BTBack:
finish();
break;
case R.id.BTPause:
break;
case R.id.BTRestart:
break;
case R.id.BTLeft:
break;
case R.id.BTCenter:
break;
case R.id.BTRight:
break;
default:
break;
}
}
}
[/syntax]