Фрагмент Android Studio, передающий контекст в пользовательский Gridview - PullRequest
0 голосов
/ 14 апреля 2019

Как я могу сделать фрагмент с пользовательским gridview? Я пробовал с действием, и он передавал контекст из активности, но я не знаю, как это сделать с Fragment. Я пытался с "активность", но все равно я получаю нулевой результат от адаптера.

Мой фрагмент:

   val example = listOf<String>(
        "Product 1", "Product 2", "Product 3", "Product 4", "Product 5", "Product 6", "Product 7", "Product 8"
    )
    val adapter = GridviewAdapter(this, example )
    grid_view.adapter = adapter

Мой адаптер:

    class GridviewAdapter(private val context: Context, private val list_produk: List<String>) : BaseAdapter() {
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {

    val view: View = LayoutInflater.from(context).inflate(R.layout.custom_gridview_produk, parent, false)

    val nama = view.findViewById<AppCompatTextView>(R.id.txt_nama)
    nama.text = list_produk.get(position)

    val harga = view.findViewById<AppCompatTextView>(R.id.txt_harga)
    harga.text = "Rp 65.000".toString()

    return view
}

Ошибка:

  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.latihan.myapplication/com.latihan.myapplication.MainActivity}: java.lang.IllegalStateException: grid_viewmust not be null

Мой XML

 `<?xml version="1.0" encoding="utf-8"?>
     <FrameLayout 
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         tools:context=".HomeFragment" 
         android:background="@android:color/darker_gray">
         <GridView
                android:layout_width="match_parent"
                android:layout_height="wrap_content" android:numColumns="2" 
                android:id="@+id/grid_view"/>
     </FrameLayout>`

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019
0 голосов
/ 14 апреля 2019

Вы инициализировали свой gridview с помощью findViewById ()?и для передачи контекста из фрагмента используйте getContext () ....

val adapter = GridviewAdapter(getContext(), example )
...