Добрый день!
Что не так с кодом? При нажатии на кнопки ошибок ни каких нет и приложение не вылетает. Изначально я хотел сделать так чтобы пользователь выбирал положение кнопки и ее цвет. Вот с положение все норм, но цвет кнопки не меняется и при этом приложение не вылетает и нет никаких ошибок. Помогите!
package com.example.createviews;
import static com.example.createviews.R.color.blue;
import static com.example.createviews.R.color.green;
import static com.example.createviews.R.color.red;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.content.res.Resources;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
LinearLayout crZone;
RadioGroup rGroup;
RadioGroup rColor;
Button btnCreate;
Button btnClear;
EditText edName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Resources resources = getResources();
int red = resources.getColor(R.color.red);
int blue = resources.getColor(R.color.blue);
int green = resources.getColor(R.color.green);
crZone = findViewById(R.id.crZone);
rGroup = findViewById(R.id.rGroup);
rColor = findViewById(R.id.rColor);
btnClear = findViewById(R.id.btnClear);
btnCreate = findViewById(R.id.btnCreate);
edName = findViewById(R.id.edName);
btnCreate.setOnClickListener(this);
btnClear.setOnClickListener(this);
}
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnCreate:
LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
int btnGravity = Gravity.LEFT;
switch (rGroup.getCheckedRadioButtonId()){
case R.id.rLeft:
btnGravity = Gravity.LEFT;
break;
case R.id.rCentre:
btnGravity = Gravity.CENTER_HORIZONTAL;
break;
case R.id.rRight:
btnGravity = Gravity.RIGHT;
break;
}
lParams.gravity = btnGravity;
Button btn = new Button(this);
btn.setText(edName.getText().toString());
switch (rColor.getCheckedRadioButtonId()){
case R.id.rRed:
btn.setBackgroundColor(red);
break;
case R.id.rBlue:
btn.setBackgroundColor(blue);
break;
case R.id.rGreen:
btn.setBackgroundColor(green);
break;
default:
}
crZone.addView(btn, lParams);
Toast.makeText(MainActivity.this, "View created", Toast.LENGTH_SHORT).show();
break;
case R.id.btnClear:
crZone.removeAllViews();
Toast.makeText(MainActivity.this, "Views deleted", Toast.LENGTH_SHORT).show();
break;
}
}
}