2010-07-26 30 views
10

के लिए आइटम पुनर्प्राप्त करते समय "लोड हो रहा है ..." टेक्स्ट कैसे प्रदर्शित करें कुछ अन्य एप्लिकेशन ऐसा कर रहे हैं जैसे ट्विटर, फेसबुक या यहां तक ​​कि एंड्रॉइड मार्केट जैसे देशी एप्लिकेशन। जब आप इंटरनेट से पुनर्प्राप्त वस्तुओं की एक सूची प्रदर्शित करना चाहते हैं, तो यह उपयोगकर्ता को प्रगति पर कार्रवाई के बारे में कुछ अधिसूचना प्रदर्शित करने के लिए एक मानक तरीका की तरह दिखता है। यह एक एनिमेटेड कताई चक्र और एक "लोड हो रहा है ..." पाठ के साथ एक सफेद पृष्ठभूमि स्क्रीन है।ListView

क्या कोई जानता है कि यह कैसे करें?

मैं इस कोड के साथ कुछ ऐसा करने में सक्षम हूं, लेकिन मुझे अभी तक यह बहुत पसंद नहीं है। अभी भी प्रगति में काम करते हैं:

<ListView android:id="@+id/post_list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/> 

    <TextView android:id="@android:id/loading" 
     android:background="@color/white" 
     android:layout_width="fill_parent"  
     android:layout_height="fill_parent" 
     android:gravity="center" android:text="Loading..." /> 

उत्तर

5

जब उपयोगकर्ता नीचे स्क्रॉल करता है तो आपके एडाप्टर के getView को "लोड हो रहा है .." टेक्स्ट और कताई प्रगति के साथ एक दृश्य वापस करना चाहिए। उसी समय AsyncTask या पृष्ठभूमि थ्रेड शुरू किया जाना चाहिए जो सामग्री का एक नया हिस्सा डाउनलोड करता है। जब सामग्री तैयार होती है adapter.notifyDatasetChanged() को कॉल किया जाता है और ListView नई सामग्री सहित सभी सामग्री को फिर से प्रदर्शित करता है।

तो "लोड हो रहा है ..." संदेश ListView में केवल एक अंतिम आइटम है।

+0

अरे फेडरर! (उर्फ "वह आदमी जिसने ओओएम त्रुटि हल की")। मैं तुम्हारा जवाब जितना अधिक पसंद करता हूं। क्या आपके पास इसके लिए एक स्निपेट है? अन्यथा मुझे लगता है कि मैं इसे समझ सकता हूं ... – ggomeze

+0

क्षमा करें, स्निपेट नहीं है। मैं सिर्फ अपनी परियोजनाओं में इस दृष्टिकोण का उपयोग करता हूं और यह ठीक काम करता है। मुझे लगता है कि बाजार ऐसा कुछ करता है। – Fedor

+0

मुझे ListView की setEmptyView विधि दिलचस्प मिली है। वहां आप एक पाठ के साथ प्रक्रिया बार विजेट जोड़ सकते हैं। मैंने इसे अभी तक पूरी तरह से काम नहीं किया है ... :-( – ggomeze

7

AsyncTask की मदद (एक बुद्धिमान backround धागा) और ProgressDialog

जब AsyncTask हम अनिश्चित स्थिति के साथ किसी progressdialog reaise शुरू होता है, एक बार कार्य समाप्त हो गया है हम खारिज साथ किया है कि संवाद

उदाहरण कोड
क्या अनुकूलक इस उदाहरण में करता है समझने के लिए कि आप AsyncTask उपयोग करने के लिए प्रगति के लिए एक संवाद प्रदर्शित करने के लिए की जरूरत है महत्वपूर्ण नहीं है, और अधिक महत्वपूर्ण है।

private class PrepareAdapter1 extends AsyncTask<Void,Void,ContactsListCursorAdapter > { 
    ProgressDialog dialog; 
    @Override 
    protected void onPreExecute() { 
     dialog = new ProgressDialog(viewContacts.this); 
     dialog.setMessage(getString(R.string.please_wait_while_loading)); 
     dialog.setIndeterminate(true); 
     dialog.setCancelable(false); 
     dialog.show(); 
    } 
    /* (non-Javadoc) 
    * @see android.os.AsyncTask#doInBackground(Params[]) 
    */ 
    @Override 
    protected ContactsListCursorAdapter doInBackground(Void... params) { 
     cur1 = objItem.getContacts(); 
     startManagingCursor(cur1); 

     adapter1 = new ContactsListCursorAdapter (viewContacts.this, 
       R.layout.contact_for_listitem, cur1, new String[] {}, new int[] {}); 

     return adapter1; 
    } 

    protected void onPostExecute(ContactsListCursorAdapter result) { 
     list.setAdapter(result); 
     dialog.dismiss(); 
    } 
} 
+0

ऑप्स लोड कर रहा है, या मैं expla नहीं था अपने आप में ठीक से, या मुझे यकीन नहीं है कि मैं आपका जवाब समझता हूं। मैं एक संवाद प्रदर्शित नहीं करना चाहता, लेकिन एक टेक्स्टव्यू, जैसे कि यह एंड्रॉइड मार्केट पर एक उदाहरण के रूप में प्रदर्शित होता है। ट्विटर, या फेसबुक भी एक ही टेक्स्ट व्यू का उपयोग करते हैं। क्या आपने देखा है कि लोडिंग के साथ स्क्रीन के साथ ... पाठ दृश्य केंद्रित है? उत्तर के लिए धन्यवाद हालांकि – ggomeze

+0

क्षमा करें, यह भगवान मुझे उलझन में है 'यह एनिमेटेड कताई चक्र के साथ एक सफेद पृष्ठभूमि स्क्रीन है और एक "लोड हो रहा है ..." ' – Pentium10

3

चाहे वह पूरी तरह से फिट बैठता है आपकी आवश्यकता होगी मैं नहीं जानता, आसान तरीका सिर्फ लोड हो रहा है पाठ शुरू में Android-खाली-आईडी-व्यू के लिए की तरह

<TextView 
     android:id="@android:id/empty" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Loading... Please Wait" 
     android:textSize="20dip" /> 

सेट कर दिया जाता है और कोई सूची आइटम तो समूह मिलता है अलग संदेश के लिए async कॉलबैक में एंड्रॉयड खाली-आईडी-व्यू

((TextView) findViewById(android.R.id.empty)).setText("Your List is empty"); 

यह उपयोगकर्ता है कि कुछ progressing..ie सूची है करने के लिए पर्याप्त संकेत दे देंगे