findViewById怎么返回null呢?

ID870177103 2016-06-16 10:02:15
Activity:
private CameraSurfaceView mCameraSurfaceView;
private Button mShutterButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OCRHelper.initial(this);
mCameraSurfaceView = (CameraSurfaceView) View.inflate(this,
R.layout.main, null);
mCameraSurfaceView.setCameraFlash(false);
mCameraSurfaceView.setFocusViewColor(Color.GREEN);
mCameraSurfaceView.setPictureCallback(this);

mShutterButton = (Button) mCameraSurfaceView
.findViewById(R.id.bnShutter);

		mShutterButton.setOnClickListener(this);
setContentView(mCameraSurfaceView);

initialTessdata(this);
}

main.xml:
<team.A1.ocrdemo.CameraSurfaceView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<Button
android:id="@+id/bnShutter"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="50dp"
android:background="@drawable/bgr_shutter" />

</team.A1.ocrdemo.CameraSurfaceView>

CameraSurfaceView是FrameLayout的子类,现在确定findViewById返回null
...全文
334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
山鹰1985 2016-06-20
  • 打赏
  • 举报
回复
引用 4 楼 ID870177103 的回复:
[quote=引用 3 楼 u012137924 的回复:] [quote=引用 1 楼 ID870177103 的回复:] 这个Ativity(MainActivity)是被一个服务启动的
			final Intent intent = new Intent(this, MainActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(intent);
mShutterButton = (Button) mCameraSurfaceView.findViewById(R.id.bnShutter); mShutterButton.setOnClickListener(this); 这2句放到 setContentView(mCameraSurfaceView);的后面.[/quote] 这个findViewById又不是Activity的成员,是FrameLayout的 问题已经解决了,竟然是Eclipse的问题 http://www.linuxidc.com/Linux/2011-08/41444.htm [/quote] 已转用 Android Studio , 弃用 Eclipse了.呵呵.
ID870177103 2016-06-18
  • 打赏
  • 举报
回复
引用 3 楼 u012137924 的回复:
[quote=引用 1 楼 ID870177103 的回复:] 这个Ativity(MainActivity)是被一个服务启动的
			final Intent intent = new Intent(this, MainActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(intent);
mShutterButton = (Button) mCameraSurfaceView.findViewById(R.id.bnShutter); mShutterButton.setOnClickListener(this); 这2句放到 setContentView(mCameraSurfaceView);的后面.[/quote] 这个findViewById又不是Activity的成员,是FrameLayout的 问题已经解决了,竟然是Eclipse的问题 http://www.linuxidc.com/Linux/2011-08/41444.htm
山鹰1985 2016-06-17
  • 打赏
  • 举报
回复
引用 1 楼 ID870177103 的回复:
这个Ativity(MainActivity)是被一个服务启动的
			final Intent intent = new Intent(this, MainActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(intent);
mShutterButton = (Button) mCameraSurfaceView.findViewById(R.id.bnShutter); mShutterButton.setOnClickListener(this); 这2句放到 setContentView(mCameraSurfaceView);的后面.
山鹰1985 2016-06-17
  • 打赏
  • 举报
回复
引用 1 楼 ID870177103 的回复:
这个Ativity(MainActivity)是被一个服务启动的
			final Intent intent = new Intent(this, MainActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(intent);
报空的代码贴上来看下.或者 mCameraSurfaceView.findViewById()试试
ID870177103 2016-06-16
  • 打赏
  • 举报
回复
这个Ativity(MainActivity)是被一个服务启动的
			final Intent intent = new Intent(this, MainActivity.class);
			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(intent);

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧