Android选择要启用按钮的图像

时间:2012-08-07 23:28:28

标签: android button bitmap

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

Code updated

请帮助..

用户可以通过从图库中选择一个图像来获取图像,或者捕获一个图像......如果这是相关的

UPDATE ::

这些是我的相机和图库代码

    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);
            }
        }
        });
}

有时它会将你带到Option活动,有时它不会,并且消息永远不会显示.. 当你点击下一个按钮并且你没有选择图像时,我想要显示消息

但如果您选择一张图片,则会将您带到选项活动

3 个答案:

答案 0 :(得分:2)

这里有一些问题:

  1. 您正在使用if关闭;语句...请勿执行此操作。
  2. 您正在检查setEnabled而不是isEnabled
  3. 您不会使用()
  4. 来了解您的情况
  5. 您不需要检查else if,因为您只检查第一个条件的反面。 else会在这里做得很好。
  6. 您应该使用:

        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);
            }
        }
    

答案 1 :(得分: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);
            }
        }
      });

答案 2 :(得分:1)

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

并使用 else if(btnNext.setEnabled(true))而不是其他如果btnNext.setEnabled(true);