下面我給出了一個簡短的示例代碼。但我正在使用這種切換方式來處理不同視圖上的點擊事件。對於每一種情況,我需要在繼續之前檢查課程的實例。如何在Android中動態地投射類的實例
public class OnResetListener implements View.OnClickListener {
private ViewHolder oHolder;
OnResetListener(ViewHolder holder) {
oHolder = holder;
}
@Override
public void onClick(View v) {
if(oHolder instanceof FolderVH){
((FolderVH) oHolder).viewPager.setCurrentItem(0, true);
} else if(oHolder instanceof NoteVH) {
((NoteVH) oHolder).viewPager.setCurrentItem(0, true);
} else if(oHolder instanceof CheckListVH) {
((CheckListVH) oHolder).viewPager.setCurrentItem(0, true);
}
}
}
這裏的類都是從RecyclerView.ViewHolder
延伸並命名爲FolderVH
,NoteVH
和CheckListVH
。所有這些擴展類都具有完全相同的結構但具有不同的值分配。
有沒有一種方法,我可以動態地投類的實例...說喜歡
if(oHolder instanceof FolderVH) oHolder = ((FolderVH) oHolder);
,然後我簡單地使用在以往任何時候需要oHolder
。
如何從'FolderVH','NoteVH'或'CheckListVH'在'ViewPagerVH'中爲'viewPager'賦值? – kanudo
照常使用'viewPager = ...;'。你應該真的瞭解Java的繼承,這是非常重要的。 – Thomas
當然@Thomas。其實現在正在工作相同:)順便謝謝你的答案。它的工作....只是在更多的問題。直接像'viewPager = ...;'或通過調用方法一樣直接賦值是一種好的做法嗎?比如'setViewPager(viewPager);' – kanudo