私の断片にRecyclerviewでリストを追加しようとしました。アダプターがレイアウトを拡張しようとすると、アダプターにエラーが発生します。 viewGroupがnullであることがわかります。前回は成功しましたが、私はRecyclerviewを断片ではなくアクティビティで使用しています。私は間違いがどこにあるのか分かりません。ここに私のエラーメッセージ。viewGroup返すアダプタのRecyclerview
android.view.InflateException: Binary XML file line #0: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at android.view.LayoutInflater.inflate(LayoutInflater.java:543)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:116)
at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:88)
at com.unicorn.muf.mockup.feature.tracking.adapter.TrackingAdapter.onCreateViewHolder(TrackingAdapter.kt:21)
at com.unicorn.muf.mockup.feature.tracking.adapter.TrackingAdapter.onCreateViewHolder(TrackingAdapter.kt:15)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6493)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5680)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5563)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5559)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2229)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1556)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1516)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:608)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3693)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3410)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3962)
at android.view.View.layout(View.java:16952)
、ここで私のフラグメント
class TrackingFragment : Fragment(), TrackingAdapter.onItemClick {
private val TAG = "TrackingFragment"
private lateinit var binding : FragmentTrackingBinding
private var list = ArrayList<TrackingModel>()
private var adapter : TrackingAdapter? = null
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
binding = DataBindingUtil.inflate(inflater,R.layout.fragment_tracking,container,false)
binding.vRecyclerview.layoutManager = LinearLayoutManager(context)
binding.vRecyclerview.itemAnimator = DefaultItemAnimator()
adapter = TrackingAdapter(list,context)
adapter!!.setOnClick(this)
binding.vRecyclerview.adapter = adapter
initdummydata()
return binding.root
}
override fun onClickItem(model: TrackingModel) {
val gson = Gson()
val intent = Intent(context,DetailTrackingActivity::class.java)
intent.putExtra(Constants.KEY_GSON, gson.toJson(model))
startActivity(intent)
}
private fun initdummydata(){
Log.d(TAG, "initData")
list.add(TrackingModel("WO",5000000,"Karyawan","Parji", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
list.add(TrackingModel("WO",40000,"Karyawan","Parjo", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
list.add(TrackingModel("WO",5000000,"Karyawan","Parje", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
list.add(TrackingModel("WO",1230000,"Karyawan","Parjer", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
list.add(TrackingModel("WO",900000,"Karyawan","Parjip", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
list.add(TrackingModel("WO",1000000000,"Karyawan","Parjan", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
list.add(TrackingModel("WO",5000000,"Karyawan","Parjak", "xxxxxasdax", "BA 1234 BA", "Truck", "Asus", "Jakarta", "A4X", "1234", "12334"))
adapter!!.notifyDataSetChanged()
}
companion object {
fun newInstance(): TrackingFragment = TrackingFragment()
}
ここに私のアダプタ。
ここでonCreateviewHolderでエラーが発生します。
私は親がnullであると追跡しています。または私の間違いがある。誰かが私を助けたら非常に感謝します。このお試し下さい
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): viewHolder = viewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_tracking_data,parent,false))
スタックオーバーフローでは、ソリューションが機能する理由を説明することをお勧めします。詳細については、[How To Answer](// stackoverflow.com/help/how-to-answer)を参照してください。 –
私のアダプタの内部クラスは戻り値のデータバインディングを必要とするため、このメソッドで "view"を返します。 – Frendi