2013-07-18 76 views
0

我想製作一個函數,可以自動投射我的findViewById-View-from引用。 我能以這種方式實現嗎?findViewById動態強制轉換爲func?

private View getReferenceForView(View view, int resId) 
     { 
     view = (view.getClass())findViewById(resId); 


      return view; 
     } 

view.getClass()是不能接受的,但我想才達到這樣的呼叫:

myView = getReferenceForView(myView, R.drawable.someresid); 

所以我可以得到我的意見參考,而不annyoing鑄造部分。

+1

檢查是否(圖的instanceof的TextView)例如 – KOTIOS

+0

我需要一個動態功能,所以我需要獲得對象 –

+1

燁的CLASSTYPE寫的開關情況下等作爲上述的TextView,按鈕等,並然後相應地強制轉換 – KOTIOS

回答

1

使用您想要的方法的唯一方法是使用反射instanceof。但是這導致了Android中每個可用視圖的巨大if-else塊。

你將不得不像下面這樣:

private View getReferenceForView(View view, int resId) 
{ 
    if(view instanceof TextView) 
     view = view.findViewById(resId); 

    else if(view instanceof EditText) 

    // and so on.. 

    return view; 
    } 

我不知道您的具體做法,但我認爲這是不值得的。

+0

phew,它很傷心:(謝謝無論如何,我想我不會寫那麼。 –