Я пытаюсь выяснить, как получить доступ к изображению из галереи Android по умолчанию и отправить его по электронной почте - PullRequest
0 голосов
/ 24 января 2012

Я выяснил, как получить доступ к галерее по умолчанию, и выяснил, как использовать функцию электронной почты для текста, но я хочу отправить изображения по электронной почте в свою галерею, как мне это сделать?Я собирался попробовать использовать приведенный ниже код, но по-прежнему появляется сообщение об ошибке «getTempUri», что я пропускаю, я ценю любую помощь по этому вопросу.Спасибо

public void onClick(View v) {   
    Intent photosendbutton = new Intent(Intent.ACTION_SEND);
    photosendbutton.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    photosendbutton.putExtra(Intent.EXTRA_EMAIL, new String[]{"johnnywalker@hotmail.com"}); 
    photosendbutton.setType("image/*");
    Uri parse = getTempUri("/mnt/sdcard/yourfolder");
    photosendbutton.putExtra(MediaStore.EXTRA_OUTPUT, parse);
    startActivity(Intent.createChooser(photosendbutton, "Send mail..."));

1 Ответ

0 голосов
/ 25 января 2012

Это потому, что вы пытаетесь получить доступ к методу из onclicklistener.Метод getTempUri определен вне onClickListener, но вы, вероятно, не видите его, потому что onClickListener объявлен как inline следующим образом:

class YourContainingClass{

   public Uri getTempUri(String){
      //process string
   }

   public void someOtherMethod(){
      button.setOnClickListener(new OnCLickListener(){
         public void onClick(View v) {
            //this is where you're trying to access getTempUri,
            //from within the new OnClickListener instance
         }
      });
   }
}

Это можно решить, обратившись к getTempUri следующим образом, если ваш содержащий классУпражнение:

((YourContainingClass)v.getContext()).getTempUri()

в противном случае вы можете позволить своему содержащему классу реализовать onClickListener следующим образом:

class YourContainingClass implements OnClickListener
{
   public void someMethod(){
      button.setOnClickListener(this);
   }

   public void OnClick(View v){
      //put your code here, here you have access to getTepUri
      this.getTempUri();
   }

   public Uri getTempUri(String someString){
      //your logic
   }
}

Я понимаю, что это может быть трудно понять, но попробуйте и не стесняйтесьзадавать вопросы

...