纯文本"文字"属性不显示变量的内容

时间:2016-05-13 08:52:23

标签: c# android xamarin xamarin.android

我的意思是有一个应用程序,其中,我显示一个值,并允许增加或减少它。可以通过"设置更改此值"活动,通过纯文本字段。我的问题是将当前值显示为纯文本的默认文本。

以下是设置页面的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];
        }
    }
}

1 个答案:

答案 0 :(得分:2)

  

纯文本“文本”属性不显示变量的内容

因为在这里:

ResSetAct.PutExtra("res", res);

使用int传递PutExtra但在下一个活动中尝试使用GetStringExtra获取它。

使用Intent.GetIntExtra获取int值:

int res = Intent.GetIntExtra("res");