我有一节延伸课,我需要活动.
public class RequestRecord extends RelativeLayout
{
public RequestRecord(Context context)
{
super(context);
ContextWrapper ctx = ((ContextWrapper) getContext());
ScrollView sv = (ScrollView) ((Activity)
ctx).findViewById(R.id.myReqList_scroll);
}
}
发生异常:java. lang.无法将android. app. ContextImpl强制转换为android. content.上下文 Package
帮帮我?
4条答案
按热度按时间eoigrqb61#
当我从膨胀而不是通过一些复杂的手动示例化获得视图时,这对我来说总是有效的(例如,如果视图是用应用程序上下文创建的,它就不起作用):
z3yyvxxp2#
getContext()
返回的任何上下文对象都不会扩展ContextWrapper
。此外,视图不应该访问其父视图Activity
,它们甚至不应该知道Activity
。为什么一个视图需要以这种方式知道另一个视图。如果你想访问兄弟视图,正确的方法是,就是得到你的父ViewGroup
,然后迭代它的子。注意,在构造函数中,你还没有一个父View
,所以调用getParent()
会返回null
。你需要在任何on* 方法中做这个工作,比如:一米八氮一x、一米九氮一x、一米十氮一x和一米十一氮一x。mzmfm0qo3#
如果ScrollViewmyReqList_scroll位于您的RequestRecord内,则可以如下调用
a0zr77ik4#