更新 在这种情况下,我认为它与众不同。你不能将父母强制转换为儿童句号;)
我疯了。
我有一个班级:
public class ActivityMonitorItemView Extends LinearLayout
现在我使用LayoutInflator返回LinearLayout。但是因为这会返回一个View,我首先会像这样转换为LinearLayout:
LinearLayout sillyLayout = (LinearLayout) vi.inflate(R.layout.activity_monitor_item, null);
但现在我尝试将sillyLayout转换为ActivityMonitorItemView ..
ActivityMonitorItemView amtv = (ActivityMonitorItemView) sillyLayout;
我得到了ClassCastException ...
任何想法? (下面使用的实际代码)
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ActivityMonitorItemView v = (ActivityMonitorItemView) convertView;
if(v == null)
{
LayoutInflater vi = (LayoutInflater)OurViewManager.getAnswersRef().getCurrentActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout t = (LinearLayout) vi.inflate(R.layout.activity_monitor_item, null);
v = (ActivityMonitorItemView) t;
v.LinkUpToTask(listItems.get(position));
}
return v;
}
答案 0 :(得分:1)
除非视图正在膨胀实际上是一个ActivityMonitorItemView,否则你将获得异常。您必须在xml文件中提供类的全名。因此,而不是LinearLayout,它就像
<com.example.ActivityMonitorItemView
android:layout_width="wrap_content"
android:layout_height="wrap_conetent"
android:id="@+id/tester"/>
希望这会有所帮助