Android -- 从 findViewById(R...) 分配的 SurfaceView 将不允许访问自定义字段

Posted

技术标签:

【中文标题】Android -- 从 findViewById(R...) 分配的 SurfaceView 将不允许访问自定义字段【英文标题】:Android -- SurfaceView assigned from findViewById(R...) won't allow access to custom fields 【发布时间】:2011-08-12 00:43:39 【问题描述】:

我有一个程序,它可以工作。我试图让在 XML 资源中声明的 SurfaceView 之一可以在 Activity 类中访问。 surfaceview 分配得很好,并允许访问 SurfaceView 方法/元素,但不是我的自定义方法/元素。如何访问自定义元素?

公共类主扩展活动 SurfaceView 查看器; 公共无效 onCreate(...) ... //成功将对象分配给查看器 查看器 = (SurfaceView)findViewById(R.id.Viewer); 无效一些方法() 查看器.doSomethingRad(); //失败 ////////////// 公共类查看器扩展了 SurfaceView... …… ////////////Main.xml ... ~view class="com.ballroll.Viewer" android:layout_ android:layout_ android:id="@+id/查看者" android:text="查看器"~ ~/查看~ //不知道怎么逃跑'

WTF?提前致谢!

【问题讨论】:

【参考方案1】:

您将视图声明为 SurfaceView。你应该使用你的类名来声明它。

 Viewer viewer;

  public void onCreate(...) 
    ...
    //Successfully assigns object to viewer
    viewer = (Viewer)findViewById(R.id.Viewer); 
  

【讨论】:

以上是关于Android -- 从 findViewById(R...) 分配的 SurfaceView 将不允许访问自定义字段的主要内容,如果未能解决你的问题,请参考以下文章

Android -- 从 findViewById(R...) 分配的 SurfaceView 将不允许访问自定义字段

ViewPager 未从代码、android、eclipse 更新

Android:findViewById 给了我错误的指针?

在android中创建方法findViewById'int'

[android]深入理解findViewById原理

如何让 findViewById 动态获取 XML 上的 id 属性(Android)?