I work in Android project and I currently need to create holders for all views. There currently are a lot of if's and I want to get rid of them. Assume there are holders for all views
if (v instanceof Spinner)
{
holder = new SpinnerHolder(v);
}
else if (v instanceof AdapterView)
{
holder = new AdapterViewHolder((AdapterView) v);
}
else if (v instanceof CompoundButton)
{
holder = new CompoundButtonHolder(v);
}
else if (v instanceof EditText)
{
holder = new TextViewHolder(v);
}
else if (v instanceof SeekBar)
{
holder = new SeekBarHolder(v);
}
else if (v instanceof TabHost)
{
holder = new TabHostHolder(v);
}
I sure could do something like
String simpleName = v.getClass().getSimpleName();
Class.forName("com.myproject.myholderpackage" + simpleName + "Holder");
...
But it doesn't work, if, for example, there are custom views like
public class foo extends LinearLayout
{
}
public class bar extends foo
{
}
Thanks.