Ищем универсальный метод для инициализации разного просмотра объектов

У меня есть вкладка настройки как расширение деятельности с использованием 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);
}
Другие вопросы по тегам