2013-07-22 5 views
8

मैं कोड में एक प्रगति बार जोड़ने यह नियत करते हैं और बनाने के लिए कोशिश कर रहा हूँ:एंड्रॉइड प्रोग्रेसबार को कोड में कैसे निर्धारित किया जाए?

progressBar = new ProgressBar(getActivity()); 
progressBar.setLayoutParams(layoutParams); 
parent.addView(progressBar, index); 
progressBar.setId(id.list_item_secondary); 
progressBar.setProgressDrawable(getResources().getDrawable(drawable.progress_horizontal)); 
progressBar.setIndeterminate(false); 
progressBar.setMax(100); 

progressBar.setIndeterminate(false) के बाद, isIndeterminate अभी भी सच है और प्रगति अनिश्चित चक्र चलता रहता है।

मैं इसे कैसे निर्धारित कर सकता हूं?

उत्तर

2

ProgressBar स्रोत कोड here से, निर्माता आप बुला रहे हैं लाइन 237 जो लाइन 241 में निर्माता है जो बदले में शैली के साथ लाइन 245 में निर्माता कॉल बुला रहा है में है स्टाइल में एट्रिब्यूट एंड्रॉइड है: अनिश्चितता केवल डिफ़ॉल्ट रूप से सही पर सेट करें ताकि सेट करने के लिए आपके कॉल अनदेखा कर दिए जाएं। देखें लाइन 433.

पर समारोह वर्णन मैं यह नहीं किया है, लेकिन मुझे लगता है कि अगर आप इस तरह लाइन 245 में निर्माता फोन:

progressBar = new ProgressBar(getActivity(), null, <Your Style ID>); 

तीसरे पैरामीटर के रूप में पारित करने के एंड्रॉयड के साथ एक शैली परिभाषा : अनिश्चितता केवल झूठी बात यह काम करना चाहिए। स्रोत कोड के आधार पर मुझे लगता है कि सेटइंडेटर्मिनेट केवल इसे सक्षम करने और इसे अक्षम करने के लिए नहीं है।

उम्मीद है कि यह मदद करता है ...

+0

क्या आप एंड्रॉइड के ढांचे में ऐसी शैली के बारे में जानते हैं? –

+0

@kilaka मुझे लगता है कि android.R.style.Widget_ProgressBar_Horizontal काम करेगा ... – Christos

+0

यह पर्याप्त नहीं था। मैं प्रगति drawable स्थापित करने के लिए किया था: 'progressBar.setProgressDrawable (। GetResources() getDrawable (android.R.drawable.progress_horizontal))' –

-1

setProgress() का उपयोग करने का भी प्रयास करें, जो शून्य और getMax() के बीच एक पूर्णांक तर्क लेता है।

+0

पहले ही इसकी कोशिश की गई है। काम नहीं किया आपको ऐसा क्यों लगता है कि यह काम करना चाहिए? –

1

ऐसा लगता है कि आप प्रोग्रेसबार की शैली विशेषता सेट कर रहे हैं। setIndeterminate() के लिए the docs से:

इस प्रगति बार की शैली ही (जैसे परिपत्र प्रगति सलाखों के रूप में) अनिश्चित मोड का समर्थन करता है, तो इस नजरअंदाज कर दिया जाएगा।

आपको मैन्युअल रूप से स्टाइल सेट करना चाहिए style="@android:style/Widget.ProgressBar.Horizontal" के माध्यम से। बस Drawable को बदलना पर्याप्त नहीं है।

+0

तो मैं प्रोग्रेसबार की शैली कैसे सेट करूं? –

+0

आप निर्माता में सेट कर सकते हैं, इस तरह: http://stackoverflow.com/a/3765577/752320 – Geobits

+0

अभी तक बेहतर, का उपयोग 'शैली =" एंड्रॉयड: progressBarStyleHorizontal "' विषय के दिए गए शैली लेने के लिए। – nmr

0

आपकी डिफ़ॉल्ट प्रोग्रेसबार शैली में एंड्रॉइड है: अनिश्चितता केवल सत्य पर सेट है। तो आप प्रोग्रेसबार की अनिश्चित स्थिति को बदल नहीं सकते हैं।

com.android.internal.R.attr.progressBarStyle 

यह: source code.

+0

तो मैं इसे कैसे निर्धारित कर सकता हूं? –

+0

क्या आपने स्रोत देखा है? कोई रास्ता नहीं है) कन्स्ट्रक्टर में सही शैली का प्रयोग करें। @ जीबिट्स सही है। – Leonidos

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