将视图添加到TableLayout

时间:2014-06-15 12:52:06

标签: c# android xamarin views tablelayout

我想达到什么目标?

我的目标是以编程方式创建一个数独字段,因此我想将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

我感谢任何帮助!

0 个答案:

没有答案