-1

Я хочу открыть диалог прогресса, когда пользователь загружает фид Twitter и когда загружается твиттер-канал, диалог прогресса исчезает.Прогресс Диалог в Твиттере Async Task - Android

Это класс TwitterAsyncTask:

public class TwitterAsyncTask extends AsyncTask<Object, Void, ArrayList<TwitterTweet>> { 
    ListActivity callerActivity; 

    private ProgressDialog pd; 

    final static String TWITTER_API_KEY = "ddd"; 
    final static String TWITTER_API_SECRET ="fffff"; 
    Context cnt; 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pd = new ProgressDialog(cnt.getApplicationContext()); 
     pd.setMessage("loading"); 
     pd.show(); 
    } 
    @Override 
    protected ArrayList<TwitterTweet> doInBackground(Object... params) { 
     ArrayList<TwitterTweet> twitterTweets = null; 
     callerActivity = (ListActivity) params[1]; 


     if (params.length > 0) { 
      TwitterAPI twitterAPI = new TwitterAPI(TWITTER_API_KEY,TWITTER_API_SECRET); 
      twitterTweets = twitterAPI.getTwitterTweets(params[0].toString()); 
     } 
     return twitterTweets; 
    } 

    @Override 
    protected void onPostExecute(ArrayList<TwitterTweet> twitterTweets) { 
     ArrayAdapter<TwitterTweet> adapter = 
       new ArrayAdapter<TwitterTweet>(callerActivity, R.layout.twitter_tweets_list, 
         R.id.listTextView, twitterTweets); 
     callerActivity.setListAdapter(adapter); 
     ListView lv = callerActivity.getListView(); 

     lv.setDividerHeight(0); 

     lv.setBackgroundColor(callerActivity.getResources().getColor(R.color.white)); 

     if (pd != null) 
     { 
      pd.dismiss(); 
     } 
    } 
} 

А вот это класс, который вызывает класс TwitterAsyncTask:

public class MainActivity extends ListActivity { 

    final static String twitterScreenName = "CFABUK"; 
    final static String TAG = "MainActivity"; 
    private AsyncTask<Object, Void, ArrayList<TwitterTweet>> tat; 
    boolean done; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     done = false; 
     AndroidNetworkUtility androidNetworkUtility = new AndroidNetworkUtility(); 
     if (androidNetworkUtility.isConnected(this)) { 
      new TwitterAsyncTask().execute(twitterScreenName, this); 

     } else { 
      Log.v(TAG, "Network not Available!"); 
     } 

    } 

    public void timerDelayRemoveDialog(long time, final ProgressDialog d) { 
     new Handler().postDelayed(new Runnable() { 
      public void run() { 
       d.dismiss(); 
      } 
     }, time); 
    } 
} 

ошибка, кажется, появляется на линии PD = новый ProgressDialog (CNT. getApplicationContext()); ... Что я должен использовать для этого? благодаря

ответ

0

Просто добавьте Конструктора в вашем AsyncTask как

Context mContext; 
public TwitterAsyncTask(Context mContext){ 

this.mContext=mContext; 

} 

И от вашей деятельности

Context mContext=this; 

new TwitterAsyncTask(mContext).execute(twitterScreenName, this); 
+0

попробуйте это..Но определите Context first – Meenal

+1

perfect ... thanks – user3156801

0

Вместо cnt.getApplicationContext() заменить его YourClassName.this

+0

проблема is..I не может, так как мой класс вызывает класс TwitterAsyncTask и не может ссылаться – user3156801

+0

Мне нужно увидеть журнал или какая ошибка появится. Помимо этого попробуйте getActivity() – Mike

0

встраивать Асинхронный задачи в вашей деятельности и замените свой контекст cnt на вашActivity.class ... И, пожалуйста, включите некоторый журнал.