kotlin.kotlinnullpointerexception

时间:2019-04-10 19:23:26

标签: json arraylist kotlin

JSON显示在Android中获取的数据并在TextView和TableLayout中显示.JSON具有九条记录,并使用Retrofit2和RXjava2对其进行解析。 所有数据都在android端并存储在ArrayList中。 在ArrayList中,“大小”为9,获取所有数据。

Textview显示数据,但在TableLayout中仅显示两个记录,不显示另外七个记录。在第三条记录中,var var tax_total给出错误:“ kotlin.kotlinnullpointerexception”

不显示其他数据是什么问题?

private fun fetchYearData(){

        val retrofit = APIClient.apIClient
        if (retrofit != null) {
            api = retrofit.create(APIInterface::class.java)
        }

        compositeDisposable!!.add(api.getSalesGSTData(1,1,"04/01/2018","31/03/2019")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe( {
                    displaySalesGSTData(it.salesGst) },
                {

                    Toast.makeText(this,it.message,Toast.LENGTH_LONG).show() }))
 }
private fun displaySalesGSTData(salesGSt : List<SalesGST>) {

        salesGST = SalesGST()
        tvSalesCompanyName.setText(salesGSt.get(1).Cmp_Name)
        tvGSTIN.setText(salesGSt.get(1).GSTIN)


        val rowHeader = TableRow(this@Sales)
        rowHeader.setBackgroundColor(Color.parseColor("#c0c0c0"))
        rowHeader.setLayoutParams(TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
                TableLayout.LayoutParams.WRAP_CONTENT))
        val headerText = arrayOf<String>("Sr.No.", "Invoice Type", "Bill No.", "Bill Date", "Firm Name", "GST NO","TAX Total","CGST","SGST","IGST","Net Amount")
        for (c in headerText)
        {
            val tv = TextView(this@Sales)
            tv.setLayoutParams(TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
                    TableRow.LayoutParams.WRAP_CONTENT))
            tv.setGravity(Gravity.CENTER)
           // tv.setBackgroundResource(R.drawable.table_header)
            tv.setTextColor(Color.parseColor("#3F51B5"))
            tv.setTextSize(18F)
            tv.setPadding(5, 5, 5, 5)
            tv.setText(c)
            rowHeader.addView(tv)
        }
        tableMarks.addView(rowHeader)

        for (j in 0 until salesGSt.size)
        {
            var fName : String = salesGSt[j].FirmName!!
            var invoice : String = salesGSt[j].InvoiceType!!
            var bill_no : String = salesGSt[j].ChallanNo!!
            var bill_date : String = salesGSt[j].ChallanDate!!
            var gst_no : String = salesGSt[j].PartyGST!!
            var tax_total : String = salesGSt[j].TaxTotal!!
            var cgst : String = salesGSt[j].CGSTTotal!!
            var igst : String = salesGSt[j].IGSTTotal!!
            var sgst : String = salesGSt[j].SGSTTotal!!
            var net_amount : String = salesGSt[j].ChallanAmount!!

            var sr : Int = j
            // dara rows
            val row = TableRow(this@Sales)
            row.setLayoutParams(TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT,
                    TableLayout.LayoutParams.WRAP_CONTENT))
            val colText = arrayOf<String>(sr.toString(),(invoice), bill_no, bill_date, fName, gst_no,tax_total,cgst,sgst,igst,net_amount)
            for (text in colText)
            {
                val tv = TextView(this@Sales)
                tv.setLayoutParams(TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
                        TableRow.LayoutParams.WRAP_CONTENT))
                tv.setGravity(Gravity.CENTER)
               // tv.setBackgroundResource(R.drawable.table_shape)
                tv.setTextSize(18F)
                tv.setTextColor(Color.parseColor("#000000"))
                tv.setPadding(5, 5, 5, 5)
                tv.setText(text)
                row.addView(tv)
            }
            tableMarks.addView(row)
        }

JSON:

{"success":1,"salesGst":[{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES GJ","ChallanNo":"1","ChallanDate":"2019-03-15 00:00:00","ChallanAmount":"2778.75","TaxTotal":"2778.75","InvoiceType":"Retail Invoice","CGSTTotal":"0.0","PartyGST":"CDE","SGSTTotal":"0.0","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES GJ","ChallanNo":"1","ChallanDate":"2019-03-13 00:00:00","ChallanAmount":"2203.0","TaxTotal":"2118.5","InvoiceType":"Tax Invoice","CGSTTotal":"52.96","PartyGST":"CDE","SGSTTotal":"52.96","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"VIKAS","ChallanNo":"2","ChallanDate":"2019-03-16 00:00:00","ChallanAmount":"6975.0","TaxTotal":"6975.0","InvoiceType":"Retail Invoice","CGSTTotal":"0.0","PartyGST":null,"SGSTTotal":"0.0","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES MH","ChallanNo":"2","ChallanDate":"2019-03-13 00:00:00","ChallanAmount":"420.0","TaxTotal":"403.75","InvoiceType":"Tax Invoice","CGSTTotal":"0.0","PartyGST":"ABC","SGSTTotal":"0.0","IGSTTotal":"20.19"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES GJ","ChallanNo":"3","ChallanDate":"2019-03-14 00:00:00","ChallanAmount":"4788.0","TaxTotal":"4560.0","InvoiceType":"Tax Invoice","CGSTTotal":"114.0","PartyGST":"CDE","SGSTTotal":"114.0","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES GJ","ChallanNo":"4","ChallanDate":"2019-03-15 00:00:00","ChallanAmount":"241.9","TaxTotal":"230.38","InvoiceType":"Tax Invoice","CGSTTotal":"5.76","PartyGST":"CDE","SGSTTotal":"5.76","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES GJ","ChallanNo":"5","ChallanDate":"2019-03-15 00:00:00","ChallanAmount":"5563.68","TaxTotal":"5101.5","InvoiceType":"Tax Invoice","CGSTTotal":"231.28","PartyGST":"CDE","SGSTTotal":"231.28","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES GJ","ChallanNo":"6","ChallanDate":"2019-03-16 00:00:00","ChallanAmount":"13238.0","TaxTotal":"12459.25","InvoiceType":"Tax Invoice","CGSTTotal":"389.29","PartyGST":"CDE","SGSTTotal":"389.29","IGSTTotal":"0.0"},{"Cmp_Name":"ABC","GSTIN":"AAAA","FirmName":"SALES MH","ChallanNo":"7","ChallanDate":"2019-03-16 00:00:00","ChallanAmount":"2074.0","TaxTotal":"1975.0","InvoiceType":"Tax Invoice","CGSTTotal":"0.0","PartyGST":"ABC","SGSTTotal":"0.0","IGSTTotal":"98.75"}]}

xml:

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:scrollbarStyle="insideInset"
    android:fadeScrollbars="true"
    android:scrollbarSize="10dp"
    android:fitsSystemWindows="true">
    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tableMarks"

        android:stretchColumns="*"
        android:layout_marginTop="20dp"
        android:orientation="horizontal"
        ></TableLayout>

</HorizontalScrollView>
</ScrollView>

0 个答案:

没有答案