2017-11-17 14 views
0

私の意図は、各行に4つのインスタンスを配置することです。しかし、私はまだnullのObject Referenceを取得します:Android StudioのDynamic TableViewでのNullObjectReference

原因:java.lang.NullPointerException:仮想メソッド 'void android.widget.TableLayout.addView(android.view.View)'をnullで呼び出そうとしましたオブジェクト参照

私は始めているが、私はまだコンテキストを制御していないと言えるので、それは関連しているか分からない。 XMLでテーブルを作成しました(IDで呼び出されます)。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    listadecosas listadecosas = new listadecosas(); 
    TableLayout tablacomida = (TableLayout)findViewById(R.id.table_cosas_seleccion); 


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

     TableRow tr = new TableRow(this); 

     for(int z=0;z<4;z++){ 
      if(listadecosas.listacomida.get(i)!=null) { 
       LinearLayout ll = new LinearLayout(this); 
       ll.setOrientation(LinearLayout.VERTICAL); 
       TextView tx = new TextView(this); 
       ImageView vx = new ImageView(this); 
       vx.setImageResource(listadecosas.listacomida.get(i).getFotico()); 
       vx.setTag(i); 
       vx.setMaxHeight(20); 
       vx.setMaxWidth(20); 
       vx.setOnClickListener(this); 
       tx.setText(Double.toString(listadecosas.listacomida.get(i).getPrecio())); 
       ll.addView(vx); 
       ll.addView(tx); 
       tr.addView(ll); 
       i++; 
      } 
     } 
     tablacomida.addView(tr); 
    } 
} 
+0

[NullPointerExceptionがある、と私はそれをどのように修正すればよいか?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-の可能性のある重複i-fix-it) –

答えて

0

これらはどういう意味ですか?

TableRow tr = new TableRow(this); 
TextView tx = new TextView(this); 
ImageView vx = new ImageView(this); 

私が今までこれに直面していなかった...

デバッガは、あなたが実際にあなたのレイアウト内の任意のオブジェクト参照を持っていない権利です。 レイアウト内にオブジェクトを作成し、そのオブジェクトの参照を取得する必要があります。

TextView tx = (TextView)findViewById(R.id.myTextView); 
+0

これらは、配置したい要素ごとに作成された新しいインスタンスです。基本的には、LinearLayoutにイメージとテキストを作成し、すべての行に4つの線形レイアウトを作成するようなものです。 –

+0

どこに配置しますか?彼らが作成されたとき? –

+0

@ M.M多分あなたは正しいと思いますが、実際に何が起こっているのか分かりません... –