好的,我是Android和C#的新手。事实上刚开始今天。我通常用VB编程,但无论如何我都在尝试使用MonoDroid,经过几个小教程我自己尝试了一些东西。我想要的是画布上有两个单选按钮。还有一个禁用按钮,只有在您单击其中一个单选按钮时才会启用它。有趣的是,你需要编码单选按钮以便在点击另一个单选按钮时取消选中,这与Windows窗体不同,或者我错过了某些内容。但我做到了。当您按下“下一步”按钮时,它将转到下一页。
这是我上面的代码:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
RadioButton radSilent1 = FindViewById<RadioButton>(Resource.Id.radSilent);
RadioButton radVibrate1 = FindViewById<RadioButton>(Resource.Id.radVibrate);
Button button1 = FindViewById<Button>(Resource.Id.btnNext);
radSilent1.Click += delegate
{
button1.Enabled = true;
if (radSilent1.Checked == true)
radVibrate1.Checked = false;
else if (radVibrate1.Checked == true)
radSilent1.Checked = false;
{
}
};
radVibrate1.Click += delegate
{
button1.Enabled = true;
if (radVibrate1.Checked == true)
radSilent1.Checked = false;
else if (radSilent1.Checked == true)
radVibrate1.Checked = false;
{
}
};
// Set our view from the "secondry" layout resource
button1.Click += delegate { SetContentView(Resource.Layout.Secondry); };
}
这会打开第二个画布。我有另一个按钮'返回'。当我按下该按钮时,它会将我带到第一个屏幕,但上面的代码不起作用。我按下两个单选按钮,两个都被选中,按钮也没有启用。为什么会这样?请记住,我很抱歉这是对此感到非常新大声笑 非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
错误是当您使用新布局(SetContentView(Resource.Layout.Secondry)
)时,您丢失了在OnCreate(Bundle bundle)
中初始化的所有附加事件处理程序。要解决此问题,您需要创建两个类似InitializeMainView()
和InitializeSecondView()
的方法,其中附加处理程序来控制所选布局上的事件。更改布局后,只需为选定视图调用init方法。
但我认为最好的解决方案是为第二种观点创建新的单独活动。