1

我有一个选项卡设置为使用 API8 max 的活动扩展。在此选项卡中,我正在初始化一些TextView,EditTextSeekBar对象,如下所示。

我正在寻找一种更通用的方法,以便能够使用单一方法来初始化各种对象类型(即TextView,EditTextSeekBar),传递View类型和id作为参数,而不是每种View类型使用一个方法。

简而言之,如何用一个通用方法替换两个方法 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 );
}
4

1 回答 1

1

这应该做你想要的:

@SuppressWarnings("unchecked")
private <V extends View> V findView(int id) {
    return (V) findViewById(id);
}
于 2012-06-13T13:50:45.090 回答