安卓:错误,当我设置的ImageView的大小内编程的TableRow [英] Android : Error when i set size of imageView inside TableRow programmatically
问题描述
当我尝试设置我的ImageView客体的大小,我总是同样的错误:
的尝试写入到外地'廉政android.view.ViewGroup $ LayoutParams.width对空对象引用的
我的一块code的:
TableLayout TL =(TableLayout)findViewById(R.id.layoutDuNiveau);
对于(INT J = 0; J< hauteurDuNiveau; J ++){
TR的TableRow =新的TableRow(本);
tr.setLayoutParams(新TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT));
的for(int i = 0; I< largeurDuNiveau;我++){
imageViewDuNiveau [I] [J] =新ImageView的(本);
imageViewDuNiveau [I] [J] .setImageResource(R.drawable.blanc);
imageViewDuNiveau [I] [J] .requestLayout();
。imageViewDuNiveau [I] [J] .getLayoutParams()宽= 20; // ERROR HERE
。imageViewDuNiveau [I] [J] .getLayoutParams()高度= 20; // ERROR HERE
开关(tableauDuNiveau [I] [J]){
案件 '#':
imageViewDuNiveau [I] [J] .setImageResource(R.drawable.mur);
默认:
}
tr.addView(imageViewDuNiveau [I] [J]);
}
tl.addView(TR);
}
由于在这里看到:
如果这个观点是没有连接到父此方法可能返回null
的ViewGroup或setLayoutParams(android.view.ViewGroup.LayoutParams)是
没有成功调用。当查看连接到父
ViewGroup中,该方法不能返回null
块引用>要完成之前访问
宽度
和高度解决问题调用插件的ImageView到
TR
code>:tr.addView(imageViewDuNiveau [I] [J]);
。imageViewDuNiveau [I] [J] .getLayoutParams()宽= 20;
。imageViewDuNiveau [I] [J] .getLayoutParams()高度= 20;When i try to set size of my ImageView objet, i have always same error :
Attempt to write to field 'int android.view.ViewGroup$LayoutParams.width' on a null object reference
A piece of my code :
TableLayout tl = (TableLayout)findViewById(R.id.layoutDuNiveau); for(int j=0;j<hauteurDuNiveau;j++){ TableRow tr = new TableRow(this); tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); for(int i=0;i<largeurDuNiveau;i++){ imageViewDuNiveau[i][j] = new ImageView(this); imageViewDuNiveau[i][j].setImageResource(R.drawable.blanc); imageViewDuNiveau[i][j].requestLayout(); imageViewDuNiveau[i][j].getLayoutParams().width = 20; // ERROR HERE imageViewDuNiveau[i][j].getLayoutParams().height = 20; // ERROR HERE switch(tableauDuNiveau[i][j]){ case '#': imageViewDuNiveau[i][j].setImageResource(R.drawable.mur); default: } tr.addView(imageViewDuNiveau[i][j]); } tl.addView(tr); }
解决方案As see here:
This method may return null if this View is not attached to a parent ViewGroup or setLayoutParams(android.view.ViewGroup.LayoutParams) was not invoked successfully. When a View is attached to a parent ViewGroup, this method must not return null
To fix issue call add ImageView to
tr
before accessingwidth
andheight
:tr.addView(imageViewDuNiveau[i][j]); imageViewDuNiveau[i][j].getLayoutParams().width = 20; imageViewDuNiveau[i][j].getLayoutParams().height = 20;
这篇关于安卓:错误,当我设置的ImageView的大小内编程的TableRow的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!