2013-07-18 35 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,它很伤心:(谢谢无论如何,我想我不会写那么。 –