0

我有一个按钮,我希望它仅在用户选择了我制作此代码的图像时才启用,但它不起作用:(

Code updated

请帮忙 ..

用户可以通过从图库中选择一张或捕获一张来获取图像..如果相关

更新::

这些是我的相机和画廊代码

    btnGallery.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            Intent i = new Intent(
                    Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);
            btnNext.setEnabled(true);
        }
    });

    btnCamera.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            startActivityForResult(intent, RESULT_LOAD_IMAGE);
            btnNext.setEnabled(true);
        }
    });

这是下一个按钮代码

    btnNext.setEnabled(false);
    btnNext.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {      
            MpClick.start();
            if (btnNext.isEnabled() == false)
            { 
                   Toast.makeText(StartActivity.this,
                            "Please get an image first.", Toast.LENGTH_LONG)
                            .show();
            }
            else
            {
                Intent next = new Intent(StartActivity.this, Option.class);
                startActivity(next);
            }
        }
        });
}

有时它会将您带到选项活动,有时则不会,并且消息永远不会显示..我希望当您单击下一个按钮并且您没有选择图像时显示消息

但如果你选择一张图片,它会带你到选项活动

4

3 回答 3

2

这里有几个问题:

  1. 您正在if以 ... 结束您的陈述,;不要这样做。
  2. 您正在检查setEnabled而不是isEnabled.
  3. 你没有围绕你的条件()
  4. 您不需要检查else if,因为您只检查与第一个条件相反的情况。else在这里会做得很好。

您应该改为使用:

    btnNext.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {               
        if (btnNext.isEnabled() == false)
        { 
               Toast.makeText(StartActivity.this,
                        "Please get an image first.", Toast.LENGTH_LONG)
                        .show();
        }
        else
        {
            Intent next = new Intent(Main.this, Editing.class);
            startActivity(next);
        }
    }
于 2012-08-07T23:34:01.617 回答
1
 btnNext.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {               
            if (!btnNext.isEnabled())
            { 
                   Toast.makeText(StartActivity.this,
                            "Please get an image first.", Toast.LENGTH_LONG)
                            .show();
            }
            else
            {
                Intent next = new Intent(Main.this, Editing.class);
                startActivity(next);
            }
        }
      });
于 2012-08-07T23:32:50.980 回答
1

使用if(btnNext.setEnabled(false))而不是 if btnNext.setEnabled(false);

并使用else if(btnNext.setEnabled(true))而不是else if btnNext.setEnabled(true);

于 2012-08-07T23:36:00.117 回答