2011-11-03 20 views
5

समस्या यह है कि मैं दूसरी गतिविधि से आ रहा हूं, और जब मैं नई गतिविधि में जाने की कोशिश करता हूं, तो यह तब तक पुराने पर बैठता है जब तक कि नया प्रदर्शित नहीं होता है, इसलिए मैं इसे नई गतिविधि में जाने की कोशिश कर रहा हूं तुरंत, और फिर सामग्री प्राप्त होने पर लोडिंग स्क्रीन लाएं। (सामग्री या तो एक वेबसाइट या एक आंतरिक डेटाबेस से आ रही है)।आप एंड्रॉइड में लोडिंग स्क्रीन कैसे उत्पन्न कर सकते हैं?

मैं Android विकास साइट से progressDialog की कोशिश की है, लेकिन यह कुछ भी नहीं है के रूप में गतिविधि कुछ भी दिखाने से पहले लोड हो रहा है खत्म, इसलिए समय यह पता चलता है द्वारा, लोड करने के लिए कुछ भी नहीं theres।

उत्तर

14

पहले पहले नई गतिविधि शुरू हुई और फिर async कार्य फ़ाइल फोन .. इस नई गतिविधि शुरू कर देंगे जब यू एक पुरानी बंद कर दें। OnCreate में नई गतिविधि की नीचे

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
      setContentView(your layout here); 
      new GetTask(this).execute(); 

    } 
} 

class GetTask extends AsyncTask<Object, Void, String> { 
    Context context; 

    GetTask(Context context, String userid) { 
     this.context = context; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

     mDialog = new ProgressDialog(mContext); 
     mDialog.setMessage("Please wait..."); 
     mDialog.show(); 
    } 

    @Override 
    protected String doInBackground(Object... params) { 
     // here you can get the details from db or web and fetch it.. 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 

     mDialog.dismiss(); 
    } 
} 
+0

को फिर से लोड नहीं होगा क्यों तुम सिर्फ एक धागा के रूप में यह मत करो? –

+0

यह AsyncTask चमत्कार काम किया, मैं सिर्फ पहली सूची आइटम पर कुछ सामान्य सामग्री, जबकि यह लोड लागू किया और उसके बाद postExecute – Shant82

+0

nyc @deepa काम में वास्तविक रूप से उत्पन्न सामग्री से लिया गया ... ले मेरी वोट दें ... :) – Steve

0

एक सुझाव के रूप में, दूसरे गतिविधि के onCreate विधि में कोड को कम करने का प्रयास करें। इसे सुपर कॉल करने और सामग्री दृश्यों को सेट करने जितना आसान हो। यह यूआई में डिज़ाइन किए गए यूआई को लाएगा।

शेष कोड को अपने ऑनयूज़ विधि पर ले जाएं। अगला चरण, यदि आपके पास डीबी या बाहर से कुछ डेटा प्राप्त किया गया है, तो thread (how to do it & what is it) या async task का उपयोग करने का प्रयास करें।

+0

खैर मैं कुछ startActivityForResults का उपयोग की तरह asyn काम वर्ग कहते हैं, कि यह कारण हर बार रिटर्न पर फिर से लोड करने देगा? – Shant82

+0

नहीं, अगर आप startActivtyForResult उपयोग करते हैं, आप onActivtyResult (..) को लागू करने की जरूरत है और संदर्भ यहां से वापस आती है .. यह गतिविधि – Vinay

संबंधित मुद्दे