0

私の断片に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))

答えて

0

はこれでonCreateViewHolder()メソッドを置き換えるためにしてみてください。

+0

スタックオーバーフローでは、ソリューションが機能する理由を説明することをお勧めします。詳細については、[How To Answer](// stackoverflow.com/help/how-to-answer)を参照してください。 –

+0

私のアダプタの内部クラスは戻り値のデータバインディングを必要とするため、このメソッドで "view"を返します。 – Frendi

0

override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): viewHolder { 
     val binding : ItemTrackingDataBinding = DataBindingUtil.inflate(
       LayoutInflater.from(parent.getContext()),R.layout.item_tracking_data,parent,false) 
     return viewHolder(binding) 
    } 

をし、これが助けたなら、私に知らせて

+0

あなたの答えをありがとうが、私はそれを試みてまだ動作していません。私はその親がnullであるために追跡している..私はあなたに私はなぜ、親:ViewGrupがnullであることを提案することができますいずれにしても私はそれを修正するには何ですか? – Frendi

+0

@Frendi親の代わりにnull、parent.getContext())、R.layout.item_tracking_data、null、false)を渡してみてください。 –

0

これは非常に面白い、私はこれを解決するために一日中過ごす..私の間違いは、私のカスタムXMLで、私はこのようなビューを使用しています。

<view 
    android:background="@color/colorGray" 
    android:layout_width="match_parent" 
    android:layout_height="1dp"/> 

何もエラーが、その偽の眺め...右はこれが誰かを助ける

<View 
    android:background="@color/colorGray" 
    android:layout_width="match_parent" 
    android:layout_height="1dp"/> 

希望です。

関連する問題