Рефакторинг отработки нажатий, копирования кнопок
Есть у меня порядка 15 кнопок, при нажатии на каждую создается её копия с новыми параметрами. В принципе он одинаков на 90%, но для каждой кнопки есть свои параметры (задаются в коде, динамических нет). Подскажите, как можно улучшить код. Можно ли сделать его универсальным, а не прописывать полностью все в ручную? Все работает, но хочется более красивый и функциональный код.
public void ClickButton1(View v){
copy_pr1 = new Button(getApplicationContext());
copy_pr1.setBackgroundResource(R.drawable.newpate);
copy_pr1.setText(pr1.getText().toString() );
copy_pr1.setId(USERID + countID);
Colo.addView(copy_pr1);
countID++;
final ObjectAnimator button_copy_button1 = ObjectAnimator.ofPropertyValuesHolder(copy_pr1,
PropertyValuesHolder.ofFloat("x", ListCoordinateX_1.get(0)),
PropertyValuesHolder.ofFloat("y", LineY_1.get(0)));
button_copy_button1.setDuration(1500);
button_copy_button1.start();
ListCoordinateX_1.remove(0);
MainListWord.add(pr1.getText().toString());
pr1.setBackgroundResource(R.drawable.acceptbutton);
pr1.setEnabled(false);
textSee.setText(String.valueOf(MainListWord));
button_copy_button1.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
button_copy_button1.ofFloat(copy_pr1, "alpha", 0f).setDuration(600).start();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
SwitchTextField();
ListXUpFull();
} //кнопка 1
Ответы (1 шт):
Создайте модельку которая будет в себе хранит параметры каждой кнопки. Создайте себе список из этих моделей, где каждый элемент это кнопка. И отобразите этот список с помощью RecyclerView. Если вам понадобится добавить новую кнопку. То просто добавляете новый элемент в список, передаете новый список в RecyclerView и обновляете адаптер.