2016-06-29 3 views
0

Я хочу вызвать метод, называемый getHoroscope() из AsyncTask, из другого класса, я пытаюсь этоAndroid: вызов метода из AsyncTask

String sentence, signo="geminis"; 
sentence = new ExtendedActivity.Parse().getHoroscope("daily",signo); 

Но я получаю ошибку «ExtendedActivity is not an enclosing class». Вы можете мне помочь?

Мой ExtendedActivity:

public class ExtendedActivity extends BaseActivity { 
(...) 
public class Parse extends AsyncTask<String, Void, String> { 

     private final ProgressDialog dialog = new ProgressDialog(ExtendedActivity.this); 


     @Override 
     public String doInBackground(String... params) { 

      String option, type, dat, site="", description="", s="";; 

      //get the user option 
      Bundle extras = getIntent().getExtras(); 
      option = extras.getString("OPTION"); 
      type = extras.getString("TYPE"); 

      description = getHoroscope(type, option); 

      return description; 
     } 


     public String getHoroscope(String type, String option){ 
      String description="", site; 
      (...) 
     } 
    } 
+0

Вы создаете объект ExtendedActivity и пытаетесь получить доступ к статически методу из класса Parse(). Либо объявите Parse и getHoroscope static, либо создайте объект Parse –

+0

Возможный дубликат [Не является закрывающим классом Java] (http://stackoverflow.com/questions/20252727/is-not-an-enclosing-class-java) –

+0

Где вы вызываете 'AsyncTask.execute'?: –

ответ

0

Вы плавиковый шпат о нем:

new ExtendedActivity().new Parse().getHoroscope();

или:

public class ExtendedActivity { 
    public static class Parse extends AsyncTask<String, Void, String> { 

     @Override 
     public String doInBackground(String... params) { 

      String description = ""; 

      description = getHoroscope(); 

      return description; 
     } 


     public static String getHoroscope() { 
      return null; 
     } 
    } 
} 

и назвать его так: new ExtendedActivity.Parse().getHoroscope();

Смежные вопросы