2015-08-03 3 views
-1

Я не понимаю, где моя ошибка. У меня есть Fragment и на onCreateView Я создаю и исполню AsyncTask. но он не показывает никаких результатов.AsynTask нет результатов по onCreateView фрагмента

Мой фрагмент

public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.thread_layout, container, false); 
     TextView tv = (TextView) view.findViewById(R.id.textView1); 
     ThreadAsyncTask threads = new ThreadAsyncTask(addressOfThread); 
     threads.execute(); 
     tv.setText(threads.getResulf()); 
     return view; 
    } 

} 

и мой AsyncTask

public class ThreadAsyncTask extends AsyncTask<String, Void, String> { 
    private String addressOfThread = ""; 
    public String resulf = "aaaa"; 

    public ThreadAsyncTask(String url) { 
     this.addressOfThread = url; 

    } 
    public String getResulf(){ 
     return new String(this.result); 
    } 

} 
+0

Вы не применяете методы AsyncTask, такие как doInBackground(). У вас нет ничего в getResulf() – yshahak

+0

, кроме того, что вы не применяете соответствующие методы для asynctask, вы также не получаете результат asynctask таким образом. onPostExecute - это то, где вы получаете результат – tyczj

+0

Я обрабатываю код в doinBackground –

ответ

0

Вы должны переопределить метод doInBackground для получения/обработки ваших данных.
Эти данные доступны в методе onPostExecute и отсюда перезвоните его в свой пользовательский интерфейс (активность или фрагмент).
Пожалуйста, смотрите мой пример мерзавец, чтобы понять этот процесс:
AsyncTask: https://gist.github.com/hongthaiis/77a847d2011f627c2c60#file-getweatherdatatask-java активности с обратным вызовом метода: https://gist.github.com/hongthaiis/43477678bb2764cfc0f6#file-weatheractivity-java

Надеется, что это поможет! : D

+0

спасибо всем ... iam так счастлив, что вы помогаете меня исправить ошибку. и я был исправлен на прошлой ночью, но я ленив, поэтому sory: P Я использую метод get() doinbackgroud для получения данных, когда doinbackgroud заканчивается .... thank u –

0

вам нужно реализовать метод doInBackground, в этом методе вам необходимо указать операции, которые вы хотите, чтобы задание выполнить в отдельном потоке. После этого, если вам нужно изменить пользовательский интерфейс с результатом, полученным от doInBaackground, вам необходимо реализовать метод onPostExecute.

+0

(Asytask) http://upfile.vn/xmIQMkBtFrXt/threadasynctask-java.html и (фрагмент) http://upfile.vn/6TBtFrXtymIg/threadfragment-java. html ..... thank u, вы можете проверить это –

+0

поблагодарить всех ... iam так счастлив, что вы поможете мне исправить ошибку. и я был исправлен в прошлую ночь, но я ленив, поэтому sory: P Я использую метод get() doinbackgroud для получения данных, когда doinbackgroud заканчивается .... thank u –

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