我想达到什么目标?
我的目标是以编程方式创建一个数独字段,因此我想将9x9 EditText视图添加到现有的TableLayout。
我的问题是什么?
简单地说:EditText视图没有显示出来。
我尝试了什么?
嗯..我的谷歌尝试可能被认为是DDOS攻击..;) 但严重的是,我搜索了很多,阅读了一些文件等但找不到合适的信息来解决我的问题。
我的数独活动代码:
public class Sudoku : Activity
{
private EditText[,] tbs;
private TableLayout grid;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
//set view
SetContentView(Resource.Layout.Sudoku);
//initializations
tbs = new EditText[9,9];
grid = FindViewById<TableLayout> (Resource.Id.grid);
//preparation
prepareControls ();
}
private void prepareControls()
{
int size = Conversion.PixelsToDp(Resources.DisplayMetrics.WidthPixels, Resources.DisplayMetrics.Density) / 15;
int x_default = 10;
int x = x_default;
int y = x_default;
int margin = 4;
RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams (size, size);
for (int row = 0; row < 9; row++)
{
TableRow trow = new TableRow (this);
for (int col = 0; col < 9; col++)
{
//lparams.LeftMargin = x;
//lparams.TopMargin = y;
EditText tb = new EditText (this);
tb.SetHeight (size);
tb.SetWidth (size);
tb.Gravity = GravityFlags.Center;
tb.SetTextColor (Color.Argb (1, 75, 75, 75));
tb.SetBackgroundColor (Color.White);
tb.LayoutParameters = lparams;
tbs[col, row] = tb;
//layout.AddView (tb, lparams);
trow.AddView (tb);
x += size;
if ((col + 1) % 3 == 0)
{
x += margin;
}
if ((col + 1) % 9 == 0)
{
y += size;
x = x_default;
}
}
if ((row + 1) % 3 == 0)
{
y += margin;
}
grid.AddView (trow);
}
}
}
其他信息
环境:Xamarin
语言:C#
API级别:API 15
我感谢任何帮助!