我在按钮上有一个空指针,我需要在推送时将我带到一个新的布局。我将代码设置为:
((Button) findViewById(R.id.analyzee)).setOnClickListener(btnClick);
在使用条件语句的方法中。
这是一款基本的人脸检测应用。如果找不到面孔,我会这样做:
if (facesFound < 1) {
mFlipper.setDisplayedChild(2);
mTheMessage = (TextView) findViewById(R.id.falsemessage);
mThePicture = (ImageView) findViewById(R.id.false_view);
mTheMessage.setText(R.string.noFaceOne);
mThePicture.setImageBitmap(bitmap565);
return;
如果找到了面孔,我在脸上画一个方框,然后执行此操作:
mFlipper.setDisplayedChild(1);
mTheMessage.setText(R.string.noFaceFive);
mThePicture.setImageBitmap(bitmap565);
我的问题在于此处,我使用此方法在按钮计时时运行:
private final View.OnClickListener btnClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.scan_box:
openCamera();
break;
case R.id.crop_face:
final ProgressDialog dialog = ProgressDialog.show(Main.this, "",
"Cropping photo", true);
dialog.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
dialog.dismiss();
}
}, 3000);
cropFace();
break;
所以,我的问题在于:
在我在鳍状肢中的一个布局中,如果没有找到面部,则布局上的按钮将需要为用户提供捕捉新图片的选项。另一个布局需要按钮(点击时)才能裁剪面部并将结果发送到另一个布局。
我面临的问题是代码:
((Button) findViewById(R.id.crop_face)).setOnClickListener(btnClick);
需要放置以便程序释放按钮已被单击,它在我的switch语句中调用case,并运行crop face_method。
我尝试将它放在我设置图像View和文本View的if语句中,但是我在该行上得到一个空指针我声明了我的按钮。
我在主菜单上的按钮工作正常,因为它们在我的onCreate方法中,但我不知道在哪里播放此按钮命令,以及我需要放置我重新打开相机命令的位置。
谢谢!
答案 0 :(得分:0)
我只是使用了错误的按钮ID ...抱歉为confusion = x