根据输入到edittext中的值,我在sqlite表上执行select,并且需要将该查询的结果显示为
Textview EditText按钮
单击该按钮时,我需要直接访问EditText的文本值。
TableLayout tl = (TableLayout)FindViewById(Resource.Id.tl);
var connection = inst.conn();
connection.Open();
var c = connection.CreateCommand();
c.CommandText = "Select * From OnOrder Where ItemNumber = '" + contents + "'";
SqliteDataReader dr = c.ExecuteReader();
if (dr.HasRows)
{
TextView tv;
EditText et;
Button bt;
TableRow tr;
var tlp = new TableRow.LayoutParams(2);
var tlp2 = new TableRow.LayoutParams(3);
while (dr.Read())
{
tr = new TableRow(this);
partdesc.Text = dr[2].ToString();
tv = new TextView(this);
tv.Text = dr[0].ToString() + " " + dr[3].ToString() + " ";
tr.AddView(tv);
et = new EditText(this);
et.Hint = "Quantity";
et.LayoutParameters = tlp;
tr.AddView(et);
bt = new Button(this);
bt.LayoutParameters = tlp2;
bt.Text = "Receive";
bt.Click += delegate
{
//Don't know what to do here to make it so that when this button is clicked it acts on the values of the edittext just created to its left
};
tr.AddView(bt);
tl.AddView(tr);
}
}
dr.Close();
connection.Close();
}
编辑:有效的代码
TableLayout tl = (TableLayout)FindViewById(Resource.Id.tl);
var connection = inst.conn();
connection.Open();
var c = connection.CreateCommand();
c.CommandText = "Select * From OnOrder Where ItemNumber = '" + contents + "'";
SqliteDataReader dr = c.ExecuteReader();
if (dr.HasRows)
{
TextView tv;
EditText et;
Button bt;
TableRow tr;
var tlp = new TableRow.LayoutParams(2);
var tlp2 = new TableRow.LayoutParams(3);
var cnt = 0;
while (dr.Read())
{
tr = new TableRow(this);
var record = cnt.ToString();
partdesc.Text = dr[2].ToString();
tv = new TextView(this);
tv.Text = dr[0].ToString() + " " + dr[3].ToString() + " ";
tr.AddView(tv);
et = new EditText(this);
et.Hint = "Quantity";
et.InputType = (int)Android.Text.InputTypes.ClassNumber;
et.LayoutParameters = tlp;
tr.AddView(et);
bt = new Button(this);
bt.LayoutParameters = tlp2;
bt.Text = "Receive";
bt.Click += delegate
{
getValue(Convert.ToInt32(record));
};
tr.AddView(bt);
tl.AddView(tr);
cnt++;
}
}
dr.Close();
connection.Close();
}
}
}
public void getValue(int index)
{
TableLayout tl = (TableLayout)FindViewById(Resource.Id.tl);
TableRow tr = (TableRow)tl.GetChildAt(index);
EditText et = (EditText)tr.GetChildAt(1);
var inst = new Inventory.invChange();
Dialog d = inst.showBuilder(this, "Test", et.Text);
d.Show();
}
答案 0 :(得分:1)
Console.WriteLine (et.Text);
答案 1 :(得分:0)
添加了我开始工作的代码。使用委托以建议的方式返回空值。
答案 2 :(得分:0)
您始终可以将tag
的{{1}}设置为相关内容。
例如,您可以为它们编号。如果你点击#4,得到左边/右边的那个,无论如何,做4-1 = 3,然后检索带有tag = 3的EditText
。