2016-02-25 4 views
5
में रिक्त है

मैं स्पिनर के लिए ArrayAdapter बढ़ाया गया है:पैरामीटर के रूप में गैर-शून्य निर्दिष्ट ArrayAdaper

class OrderAdapter(context: Context, resource: Int, objects: List<Order>) : ArrayAdapter<Order>(context, resource, objects) { 
     override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? { 
      val view = super.getView(position, convertView, parent) 
      view?.let { view.find<TextView>(android.R.id.text1).text = getItem(position).name } 
      return view 
     } 
     override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View? { 
      val view = super.getDropDownView(position, convertView, parent) 
      view?.let {view.find<TextView>(android.R.id.text1).text = getItem(position).name } 
      return view 
     } 
    } 

मैं हो रही है अपवाद:

java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter convertView 
                          at com.github.blabla.endlesss.ui.adapter.OrderAdapter.getView(OrderAdapter.kt:0) 

कोई भी विचार है कि यह कैसे तय करने के लिए?

+1

अपवाद बहुत स्पष्ट है। आप कनवर्ट व्यू पैरामीटर के लिए शून्य पास कर रहे हैं। – Arno

+1

यह विधि एंड्रॉइड फ्रेमवर्क द्वारा लागू की जाती है और पैरामीटर को वास्तव में शून्य के रूप में परिभाषित किया जाता है, इसलिए नल की अनुमति दी जानी चाहिए। –

+0

@ डेविड क्या आप सुनिश्चित हैं कि आपका कोड वही है जिसे आपने यहां पोस्ट किया है? विशेष रूप से, 'कन्वर्ट व्यू' पैरामीटर वास्तव में शून्य के रूप में घोषित किया गया है? –

उत्तर

4

यह समस्या वृद्धिशील संकलन के कारण हुई थी। जावा से कनवर्ट करने के बाद बस परियोजना को पुनर्निर्माण करने की आवश्यकता है।

0

नीचे दिए गए नमूना की जांच करें:

override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View? { 
    return getCustomView(position, convertView, parent) 
} 

override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? { 
    return getCustomView(position, convertView, parent) 
} 

fun getCustomView(position: Int, convertView: View?, parent: ViewGroup): View? { 
    val rootView: View? = LayoutInflater.from(context).inflate(R.layout.my_custom_view, parent, false) 
    return rootView 
} 

दिए गए मान नल होना चाहिए।

+1

चला गया यह वृद्धिशील संकलन के कारण हुआ था। –

+0

@ DawidHyży: Pls, इस (आपकी टिप्पणी) को उत्तर के रूप में पोस्ट करें और इसे स्वीकार करें। यहां वही हुआ है https://stackoverflow.com/questions/44800225/variable-is-declared-as-var-but-compiler-is-saying-it-val/44801687#44801687 –

-1
override fun getView(i: Int, view: View, parent: ViewGroup): View { 

var itemView = LayoutInflater.from(context).inflate(R.layout.item_dashbord_data, parent, false) 

     return itemView 
    } 

// व्यू ऑब्जेक्ट (itemView) का परिवर्तन नाम getView दूसरी ऑब्जेक्ट (देखें) से अलग है। तो आइटम व्यू या अन्य नाम पर दृश्य बदलें

+0

यह पहले ही हल हो चुका है। –

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