2013-03-07 5 views
7

मैं क्षैतिज प्रगति बार " ProgressDialog नहीं" इस enter image description hereक्षैतिज प्रगति बार में अपनी स्थिति

यहाँ की तरह मेरी गतिविधि पर दिखाने के लिए कोशिश कर रहा हूँ अपडेट नहीं होता है कि मेरी xml फ़ाइल शामिल

<ProgressBar 
    android:id="@+id/pdialog" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"   
    android:indeterminate="true" 
    /> 

मैं pdialog.setProgress() को सेट करके AsyncTask क्लास का उपयोग करके अपनी स्थिति को अपडेट करने का प्रयास कर रहा हूं लेकिन यह कोई प्रगति नहीं दिखा रहा है, यह प्रगतिशीलता के साथ काम करता है लेकिन क्षैतिज प्रगति पट्टी के साथ नहीं।

public class MainActivity extends Activity { 

private SQLiteDatabase db; 
private Cursor cursor; 
private ProgressBar pdialog; 
private ImageButton btn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.start); 
    btn = (ImageButton) findViewById(R.id.startbtn); 
    pbar = (ProgressBar) findViewById(R.id.progressBar1); 
    pdialog = (ProgressBar) findViewById(R.id.pdialog); 
    pdialog.setMax(100); 
    pdialog.setProgress(20); 
    btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      pdialog.setVisibility(View.VISIBLE); 
      new DownloadFilesTask().execute(); 

     } 
    }); 
} 

private class DownloadFilesTask extends AsyncTask<Void, Integer, Integer> { 

    int load = 1; 

    protected Integer doInBackground(Void... params) { 

     try { 
       load = 10 * i; 
       MainActivity.this.runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         pdialog.setProgress(load); 
        } 
       }); 

      } 

     } catch (Exception e) {  

     } 

    } 

    protected void onProgressUpdate(Integer... progress) { 

     if (progress[0] == 100) { 
      pdialog.setVisibility(View.INVISIBLE);   

     } 
    } 

    protected void onPostExecute(Integer params) {  

    } 

} 
} 
+0

जहां आपका वेतन बढ़ रहा है ...? –

+0

मेरे पास लंबा कोड है इसलिए मैंने इसे छोटा करने में कटौती की है, मैं अपने डिनबैकग्राउंड (i] में वृद्धि कर रहा हूं, लेकिन यह –

+0

पर अपडेट नहीं किया गया है, इसके साथ किसी भी http://eagle.phys.utk.edu/guidry का प्रयास करें /android/progressBarExample.html और http://blog.webagesolutions.com/archives/170 और यह भी सही ढंग से मेरे मूल्य की जांच करें कि क्या यह बढ़ रहा है या नहीं – itsrajesh4uguys

उत्तर

4

हैं load चर सही ढंग से बदल जाती है:

इसके बजाय इस की:

MainActivity.this.runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         pdialog.setProgress(load); 
        } 
       }); 

आप इस्तेमाल कर सकते हैं:

publishProgress(load); 

जो स्वचालित रूप से यूआई थ्रेड पर कहेंगे:

protected void onProgressUpdate(Integer... progress) { 
    int p = progress[0]; 
    if (p >= 100) { 
     pdialog.setVisibility(View.INVISIBLE);   
    }else{ 
     pdialog.setProgress(p); 
    } 
} 

अद्यतन:

निकालें android:indeterminate="true" के रूप में अन्य जवाब में बताया।

+0

मैंने ऑनप्रेशंस अपडेट में अपना सेट प्रोग्रेस() डालकर कोशिश की लेकिन परिणाम इसके समान है nt अद्यतन –

+0

@ विवेकसिंह 'pdialog.setProgress (p)' पर एक ब्रेकपॉइंट जोड़ें, डीबग मोड में चलाएं और जांचें: क्या कोड इस बिंदु पर पहुंचा है? यदि ऐसा होता है, तो 'प्रगति' चर का मूल्य क्या है? –

+1

शानदार दोस्त .. हटाने के लिए +1 एंड्रॉइड: indeterminate = "true" –

4

अपने लेआउट फ़ाइल में कृपया ProgressBar तत्व से निम्न विशेषता android:indeterminate="true" को हटा दें।

+0

धन्यवाद यह काम किया। कुडोस !! –

0

मेरे पास एक ही प्रश्न था, लेकिन मुझे पता चला कि समस्या इंटरफ़ेस View.OnClickListener() है। जब pbar को btn.setOnClickListener (नया View.OnClickListener() {}) से बाहर रखा गया था, तो यह अच्छी तरह से काम करता था। अन्यथा, यह अद्यतन नहीं किया गया था। फिर, मैंने एक कन्स्ट्रक्टर बनाया जो PXX को OnXXXClickListener में पास कर दिया।

private class OnXXXClickListener implements View.OnClickListener() { 
 
     private ProgressBar bar; 
 

 
     public OnXXXClickListener(ProgressBar bar) { 
 
      this.bar = bar; 
 
     } 
 

 
     @Override 
 
     public void onClick(View v) { 
 

 
      bar.setProgess(50); 
 
      new DownloadFilesTask().execute(); 
 

 
     } 
 

 
}

फिर pbar अच्छी तरह से काम कर सकते हैं।

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