2014-09-04 2 views
0

Я новичок в разработке android/java, поэтому у меня есть несколько вопросов, это один из них. Я хочу использовать результат, полученный в recevieResults в getTickets. Я попытался сделать getTickets статичным, но он имеетКак выполнить нестационарный метод из статического метода

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); 

и поэтому метод статичность не позволяет getApplicationContext.

public static void receiveResults(String result2) { 

usersXML = result2; 


} 

public void getTickets() { 

//this method users usersXML from above and needs to execute after receiving the results 

} 
+0

Изменить на 'public static void getTickets (Context ctx)' и заменить 'getApplicationContext()' на 'ctx'. Вы должны передать «Контекст» из вашей активности/фрагмента/независимо от того, что. –

+0

Как передать контекст из моей деятельности? Извините за недостаток знаний. Я очень ценю помощь! – user3785656

+0

@ user3785656 Есть ли какие-либо конкретные причины, по которым вы принимаете метод получения результатов (..) static? –

ответ

0

Если у вас есть класс:

public class ViewTicket extends Activity { 
    public static <result> recieveResults(Context context, String result2) { 
     ViewTicket ticket = (ViewTicket) context; 

     return <result> 
    } 

    public void getTickets(<result> result) { 
     // user <result> as you wish. 
     SharedPreference pref = this.getSharedPreferences("MyPref", 0); 
    } 


} 

Вызвать статический метод и передать объект на него.

ViewTicket myTicket = new ViewTicket(); 
<result> = ViewTicket.recieveResults(myTicket, "<someString>"); 

myTicket.getTickets(<result>); 
+0

Возможно, вы должны заменить «Активность» именем своей деятельности, так как оно расширяет активность. –

+0

Я пытался: public static void receiveResults (String result2) { usersXML = result2; getTickets (это); } public void getTickets (контекстный контекст) { ViewTickets _activity = (ViewTickets) контекст; SharedPreferences pref = _activity.getApplicationContext(). GetSharedPreferences («MyPref», 0); // этот метод пользователи usersXML сверху и должны выполняться после получения результатов } – user3785656

+0

В другом действии я использовал этот метод для передачи результата viewTickets.receiveResults (result); Так что мне нужно добавить в контекст к этому, а? – user3785656

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