Sunday, 15 August 2010

android - java.lang.IndexOutOfBoundsException occuring on ArrayList -


  कॉपीऑनव्राइटअरेरेलिस्ट & lt; विकल्प & gt; विकल्प = नया कॉपीऑनराइटअरेरेलिस्ट & lt; विकल्प & gt; (); विकल्प विकल्प = विकल्प.गेट (चयनितफ़िल्टरइंडएक्स);   

मुझे ऊपर की पंक्ति में त्रुटि मिल रही है I विकल्प एक ArrayList है मैंने ArrayList साथ ही CopyOnWriteArrayList के साथ कोशिश की, लेकिन नीचे त्रुटि प्राप्त करें ऐसे अपवादों को कैसे संभालता है।

  06-21 15: 28: 23.257: ई / XXX (8985): अनचाहे अपवाद है: 06-21 15: 28: 23.257: ई / XXX (8985): java.lang.RuntimeException: doInBackground () 06-21 15: 28: 23.257: ई / XXX (8985) को निष्पादित करते समय एक त्रुटि हुई: android.os.AsyncTask $ 3.done (AsyncTask.java .78) 06-21 15: 28: 23.257: ई / XXX (8985): java.util.concurrent.FutureTask पर $ Sync.innerSetException (FutureTask.java .7373) 06-21 15: 28: 23.257: ई / XXX (8985) : Java.util.concurrent.FutureTask.setException पर (FutureTask.java:124) 06-21 15: 28: 23.257: ई / XXX (8 9 85): java.util.concurrent.FutureTask पर $ Sync.innerRun (FutureTask.java) : 307) 06-21 15: 28: 23.257: ई / XXX (8 9 85): java.util.concurrent.FutureTask.run पर (फ्यूचरटस्क.जावा प्रलेखन) 06-21 15: 28: 23.257: ई / XXX (8 9 85) ): At android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:208) 06-21 15: 28: 23.257: ई / XXX (8985): पर java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java : 1076) 06-21 15: 28: 23.257: ई / XXX (8985): पर java.util.concurrent.ThreadPoolEx Ecutor $ Worker.run (ThreadPoolExecutor.java ts6969) 06-21 15: 28: 23.257: ई / XXX (8985): java.lang.Thread.run पर (थ्रेड.जावा: 856) 06-21 15:28: 23.257: ई / XXX (8985): द्वारा कारण: java.lang.IndexOfBoundsException: अवैध अनुक्रमणिका 0, आकार 0 06-21 15: 28: 23.257: ई / XXX (8985): java.util.ArrayList.throwIndexOfBoundsException पर ( ArrayList.java:251) 06-21 15: 28: 23.257: ई / XXX (8985): पर java.util.ArrayList.get (ArrayList.java:304) 06-21 15: 28: 23.257: ई / XXX ( 8985): com.usercontext पर। आम गतिविधि $ 6.doInBackground (AppointmentsActivity5.java:354) 06-21 15: 28: 23.257: ई / XXX (8985): com.usercontext.CommonActivity $ 6.doInBackground (AppointmentsActivity5.java:1 ) 06-21 15: 28: 23.257: ई / XXX (8985): एंड्रॉइड.ओएस.एसिंक टास्क $ 2.कॉल (असिनक टास्क। जावा 0464) 06-21 15: 28: 23.257: ई / XXX (8985): पर Java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java.35)     

आपको इस अपवाद को संभालना नहीं चाहिए - आपको वह कोड लिखना चाहिए जो गोयी नहीं है एनजी इसे पहली जगह में पैदा करने के लिए है।

आपने अभी एक खाली सूची बनाई है - नहीं मान है जिसे आप मिलते हैं पर वापस कर सकते हैं एक कीमत। सूची में 0 का आकार है, और सूचकांक 0 से बड़ा या बराबर है, और आकार से कड़ाई से कम है।

इसके अतिरिक्त, आपका कोड बहुत होगा यदि आप चर camelcased बनाने के जावा नामकरण सम्मेलनों का पालन करते हैं, तो यह पढ़ने के लिए आसान है - यह एक वैरिएबल और एक प्रकार दोनों के लिए समान नाम होने से बचना होगा। इसके अलावा दो बार एक ही चर नाम का उपयोग करने से बचें ...

  CopyOnWriteArrayList & lt; विकल्प & gt; AllOptions = नया CopyOnWriteArrayList & lt; विकल्प & gt; (); // यह अभी भी selectedFilterIndex के किसी भी मूल्य के लिए असफल होगा, क्योंकि सूची // खाली है ... लेकिन कम से कम यह समझना आसान है। विकल्प का चयन किया गया विकल्प = सभी ऑब्जेक्ट्स। (चयनित फील्टर इंडेक्स);    

No comments:

Post a Comment