Ищем универсальный метод для инициализации разного просмотра объектов
У меня есть вкладка настройки как расширение деятельности с использованием API8 макс. В этой вкладке я инициализирую некоторые TextView
, EditText
а также SeekBar
объекты, как показано ниже.
Я ищу более универсальный метод, чтобы иметь возможность использовать один метод для инициализации различных типов объектов (т.е. TextView
, EditText
, SeekBar
и так далее), передавая View
тип и id
в качестве аргумента, вместо использования одного метода на View
тип.
Короче говоря, как заменить 2 метода setTextViewObjects и setSeekbarObjects одним универсальным методом?
private void initView(){
mUnits = setTextViewObjects(R.id.textView16);
mSeekBar = setSeekBarObjects(R.id.seek);
}
/**
* Set TextView objects
*/
private TextView setTextViewObjects(int id){
return (TextView) findViewById(id );
}
/**
* Set Seekbar objects
*/
private SeekBar setSeekBarObjects(int id){
return (SeekBar) findViewById(id );
}
1 ответ
Решение
Это должно делать то, что вы хотите:
@SuppressWarnings("unchecked")
private <V extends View> V findView(int id) {
return (V) findViewById(id);
}