我的意思是有一个应用程序,其中,我显示一个值,并允许增加或减少它。可以通过"设置更改此值"活动,通过纯文本字段。我的问题是将当前值显示为纯文本的默认文本。
以下是设置页面的XML代码:
int res = 5;
resSetButton.Click += delegate {
Intent ResSetAct = new Intent(this, typeof(ResourceSettingsActivity));
ResSetAct.PutExtra("res", res);
StartActivity(ResSetAct);
};
这是我用来将值发送到“设置”活动的代码:
string res = Intent.GetStringExtra("res");
EditText CurRes = FindViewById<EditText>(Resource.Id.editCurRes);
CurRes.Text = res;
这是我用来检索其他活动中的数据并显示它的代码:
private void button2_Click(object sender, EventArgs e)
{
DbConnector db = new DbConnector();
string str = "";
List<string> lst = db.ReadProjectsTable();
lst.OrderBy(x => x.Count(y => y == '|'));
List<string> newLst = new List<string>();
foreach (var item in lst)
{
string output = "";
foreach (var item2 in item.Split('|', '|'))
{
output += item2 + '-';
}
output = output.Substring(output.IndexOf('-')+1, output.LastIndexOf('-')-2);
newLst.Add(output);
str += output + Environment.NewLine;
}
textBox2.Text = str;
tvProjects.PathSeparator = @"-";
PopulateTreeView(tvProjects, newLst, '-');
}
private static void PopulateTreeView(TreeView treeView, IEnumerable<string> paths, char pathSeparator)
{
TreeNode lastNode = null;
string subPathAgg;
foreach (string path in paths)
{
subPathAgg = string.Empty;
foreach (string subPath in path.Split(pathSeparator))
{
subPathAgg += subPath + pathSeparator;
TreeNode[] nodes = treeView.Nodes.Find(subPathAgg, true);
if (nodes.Length == 0)
if (lastNode == null)
lastNode = treeView.Nodes.Add(subPathAgg, subPath);
else
lastNode = lastNode.Nodes.Add(subPathAgg, subPath);
else
lastNode = nodes[0];
}
}
}
答案 0 :(得分:2)
纯文本“文本”属性不显示变量的内容
因为在这里:
ResSetAct.PutExtra("res", res);
使用int
传递PutExtra
但在下一个活动中尝试使用GetStringExtra
获取它。
使用Intent.GetIntExtra
获取int值:
int res = Intent.GetIntExtra("res");