【发布时间】:2013-12-03 10:05:12
【问题描述】:
我在 Android 项目中工作,我目前需要为所有视图创建持有者。目前有很多如果,我想摆脱它们。假设所有视图都有持有者
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);
}
我当然可以做类似的事情
String simpleName = v.getClass().getSimpleName();
Class.forName("com.myproject.myholderpackage" + simpleName + "Holder");
...
但它不起作用,例如,如果有像这样的自定义视图
public class foo extends LinearLayout
{
}
public class bar extends foo
{
}
谢谢。
【问题讨论】:
-
Map<Class, String>或Map<Class, Class>能解决您的问题吗?