0

findViewById-View-from 参照を自動的にキャストする関数を作成したいと思います。何とかこれを達成できますか?

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


          return view;
      }

view.getClass() はそこでは受け入れられませんが、呼び出しで次のようなことを達成したいと思います:

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

だから私は、キャスティングの部分がなくても、自分の見解の参照を得ることができます。

4

1 に答える 1

1

必要なアプローチを使用する唯一の方法は、リフレクションを使用することinstanceofです。しかし、これは Android で利用可能なすべての View に対して巨大な 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;
  }

あなたの正確なアプローチはわかりませんが、これは努力する価値がないと思います。

于 2013-07-18T17:46:17.130 に答える