2017-11-19 1 views
-3

이 사이트에서 제공되는 모든 솔루션을 통해이 null 포인터를 제거했지만 아무 것도 작동하지 않으므로이 질문을 게시하고 있습니다.TextView에서 값을 설정할 때 널 포인터 예외가 발생했습니다.

TextView에 값을 설정하려고하지만 null 포인터가 반환됩니다. 주요 활동에

코드 : 텍스트가 설정되는

@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); 

등급 :

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; 
} 

오류가 다음 줄에 발생합니다 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> 

이 질문은 이미 가능한 솔루션으로 제안 된 내용과 다른, 즉, 그것은 내가 제발 도와주세요

문제를 cuasing 생각 다중 레이어와 그 팽창을 포함!

+0

ID와'가''txtNum'가 나타내는 vg' 어떤 레이아웃'에없는 것으로 보인다 게시 된 XML 파일입니다

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

합니다. 'rowlayout' 아마도? –

+0

'if '조건 내에서만'findViewById'를 호출하지만, 그렇지 않은 경우는 호출하지 않습니다. 이것이 아마도 NullPointerException의 원인 일 것입니다. 논리를 수정해야합니다. –

+0

XML 레이아웃 게시 – Hai

답변

0

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

변경이 row_layout.xml 당신이

+0

또한 1 행만 사용하면 너무 무거울 수있는 TableLayout 대신 가중치를 사용하여 가로형 LinearLayout을 사용하는 것이 좋습니다. – Hai

관련 문제