-3

I've gone through all the solutions provided on this site to remove this null pointer but none have work, hence I'm posting this question.

I'm trying to set a value to a TextView, but a null pointer is returned.

Code in main activity:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_stock);
        list = new ArrayList<Inventory>();

        sendRequest();


        ListView listView=(ListView)findViewById(R.id.list);
        ViewGroup headerView=(ViewGroup)getLayoutInflater().inflate(R.layout.header,listView,false);
        listView.addHeaderView(headerView);
        ListAdapter adapter = new ListAdapter(this, R.layout.rowlayout, R.id.txtNum, list);
        listView.setAdapter(adapter);

Class where text is being set:

static class ViewHolder{

    public TextView txtNum;
    public TextView txtProduct;
    public TextView txtUnitPrice;
    public TextView txtQTY;
    public TextView txtStatus;
    public TextView txtUser;
    public TextView txtDate;


}


    public View getView(int position, View convertView, ViewGroup parent){
    View rowView=convertView;
    if(rowView==null) {
        System.out.println("ZZZZZZ IF CONDITION IS TRUE ZZZZZZZZZZZZ");
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        rowView = inflater.inflate(vg, parent, false);
        ViewHolder holder = new ViewHolder();
        holder.txtNum = (TextView) rowView.findViewById(R.id.txtNum);
        holder.txtProduct = (TextView) rowView.findViewById(R.id.txtProduct);
        holder.txtUnitPrice = (TextView) rowView.findViewById(R.id.txtUnitPrice);
        holder.txtQTY = (TextView) rowView.findViewById(R.id.txtQty);
        holder.txtStatus = (TextView) rowView.findViewById(R.id.txtStatus);
        holder.txtUser = (TextView) rowView.findViewById(R.id.txtUser);
        holder.txtDate = (TextView) rowView.findViewById(R.id.txtDate);
        rowView.setTag(holder);
        System.out.println("EVERYTHING HAS BEEN INITIALIZED");
    }
        //String[] item = item_list[position].split("__");
        Inventory row = list.get(position);
        ViewHolder holder =(ViewHolder)rowView.getTag();
        System.out.println("THIS IS WHAT ITEM = " + row.Item);
        System.out.println("THIS IS WHAT PRODUCT = " + row.Product);
        System.out.println("THIS IS WHAT UNIT_PRICE = " + row.Unit_Price);
        System.out.println("THIS IS WHAT QTY = " + row.Qty);
        System.out.println("THIS IS WHAT STATUS = " + row.Status);
        System.out.println("THIS IS WHAT USER = " + row.UserUpdate);
        System.out.println("THIS IS WHAT DATE = " + row.Last_Updated);



        holder.txtNum.setText(row.Item);
        holder.txtProduct.setText(row.Product);
        holder.txtUnitPrice.setText(row.Unit_Price);
        holder.txtQTY.setText(row.Qty);
        holder.txtStatus.setText(row.Status);
        holder.txtUser.setText(row.UserUpdate);
        holder.txtDate.setText(row.Last_Updated);

        return rowView;
}

Error occurs on the following line: holder.txtNum.setText(row.Item);

XML:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:stretchColumns="*">

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        >


        <TextView
            android:id="@+id/txtNum"
            android:layout_column="2"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:layout_marginLeft="-21dp"
            android:text="#"
            android:textSize="10dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtProduct"
            android:layout_column="3"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:text="Product"
            android:textSize="10dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtUnitPrice"
            android:layout_column="3"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:text="Unit Price"
            android:textSize="10dp"
            android:textStyle="bold" />
        <TextView
            android:id="@+id/txtQTY"
            android:layout_column="3"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:text="Qty"
            android:textSize="10dp"
            android:textStyle="bold" />
        <TextView
            android:id="@+id/txtStatus"
            android:layout_column="3"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:text="Status"
            android:textSize="10dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtUser"
            android:layout_column="3"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:text="User"
            android:textSize="10dp"
            android:textStyle="bold" />
        <TextView
            android:id="@+id/txtDate"
            android:layout_column="1"
            android:background="#c0c0c0"
            android:padding="10dp"
            android:text="Date"
            android:textSize="10dp"
            android:textStyle="bold" />







    </TableRow>


</TableLayout>

This question is different from what has already been suggested as a possible solution, in that, it involves multiple layers and inflating them, which i think is cuasing an issue

Please Help!

1 Answers1

0

rowView = inflater.inflate(vg, parent, false);

Change that to

rowView = inflater.inflate(R.layout.row_layout, parent, false);

Where row_layout.xml is the XML file you posted

Hai
  • 680
  • 6
  • 14
  • Also I'd recommend you use a horizontal LinearLayout with weights instead of a TableLayout which is too heavyweight given you only use it with 1 row – Hai Nov 19 '17 at 01:13