-2

Ich mache ein Layout mit einem LinearLayout. Dieses Layout wird im Inneren ein anderes Layout haben. Momentan bekomme ich damit Probleme (Nullexzeption). Mein aufblasen Code ist der nächste:Dynamisches Aufblasen gibt mir eine Nulllexception

private void addLayoutInvoices() { 

     LinearLayout ll_invoices = new LinearLayout(getActivity()); 
     ll_invoices.setGravity(Gravity.CENTER); 
     ll_invoices.setOrientation(LinearLayout.VERTICAL); 

     LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 

     ll_invoices.setLayoutParams(llp); 

     ... 

     if(mas.size() > 0) { 

      for (int i = 0; i < mas.size(); i++) { 

       if(mas.get(i).getStatus() == 1){ 

        View newGratLayout = LayoutInflater.from(getActivity()).inflate(R.layout.albaran_invoices_row, ll_invoices_layer, false); 

        newGratLayout.setId(i + 8000); 

        RelativeLayout rl_albaran_invoices_row = (RelativeLayout) newGratLayout.findViewById(R.id.rl_albaran_invoices_row); 
        final LinearLayout ll_details = (LinearLayout) newGratLayout.findViewById(R.id.ll_details); 

        ... 

        rl_albaran_invoices_row.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          if (!rowClicked) { 
           ll_details.setVisibility(View.VISIBLE); 
           rowClicked = true; 
          } else { 
           ll_details.setVisibility(View.GONE); 
           rowClicked = false; 
          } 
         } 
        }); 

        ll_invoices.addView(newGratLayout); 
       } 

      } 

      ll_invoices_layer.addView(ll_invoices); 

      if(existsPending) 
       bt_resend_pending.setVisibility(View.VISIBLE); 
     } 



    } 

albaran_invoices_row.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/rl_albaran_invoices_row" 
    android:scrollIndicators="none"> 

    ... 

</RelativeLayout> 

Die logcat zeigt einen Fehler Nullpointer in der Linie rl_albaran_invoices_row.setOnClickListener .... Was mache ich falsch?

HINWEIS: Ich mache das von einem Fragment.

+0

'' albaran_invoices_row.xml' nicht ein Element mit der ID enthalten rl_albaran_invoices_row' – Blackbelt

+0

ich die albaran_invoices_row.xml (vereinfachte) – MAOL

+0

Überprüfen hinzugefügt, wenn 'R.id.rl_albaran_invoices_row' korrekt ist – gprathour

Antwort

0

Ich habe die Art der Ansicht ändern, das Problem zu beheben:

Ich hatte ...

//View newGratLayout = LayoutInflater.from(getActivity()).inflate(R.layout.albaran_invoices_row, ll_invoices_layer, false); 

Und jetzt hatte ich ...

RelativeLayout newGratLayout = (RelativeLayout)getActivity().getLayoutInflater().inflate(R.layout.albaran_invoices_row, null); //rl_albaran_invoices_row 

Dank für die Leute, die versuchen, mir zu helfen.

0

scheint wie "newGratLayout" Ansicht ist null. Debuggen Sie den Code, damit Sie die Idee bekommen.