我有3个活动,每个活动都有相同的布局和相同的按钮。
单击停止标志后,开始按钮会发生变化。现在,必须将停止标志转移到其他页面并保留,直到再次单击。 (点击停止后与ok标志相同)
当您看到停车标志时,您可以在页面之间来回切换。
我需要一些代码如何将ImageButtons的状态传递给其他活动,而在更改页面时没有带停止符号的状态会丢失。 - >直到再次点击。
ImageButton的Codepart更改:
<div>
<h1 class="albumHeader"> Header One </h1>
<span class="albumDate"> 12/12/2017 </span>
<span class="albumCategory"> Jazz </span>
</div>
<button> Design One </button>
<button> Design Two </button>
<button> Design Three </button>
我尝试了什么:
1)
ButtonState btnState = ButtonState.start;
var button = FindViewById<ImageButton>(Resource.Id.MyImageButton);
button.Click += (sender, e) => {
if (btnState == ButtonState.start)
{
btnState = ButtonState.stop;
button.SetImageResource(Resource.Drawable.ic_pi1);
}
else if (btnState == ButtonState.stop)
{
btnState = ButtonState.ok;
button.SetImageResource(Resource.Drawable.ic_pi2);
}
else
{
btnState = ButtonState.start;
}
};
问题在于:
活动1点击开始出现停止标志&gt;滚动到Activity2停止标志未转移&gt;向后滚动到Activity1,开始标志返回,不能再更改。
2)
public static ButtonState btnState;
无法访问Xamarin.Android
答案 0 :(得分:0)
在更多活动之间传递ImageButton的当前imagestatus,如何?
正如Dilmah所说,您可以使用Intent
在btnState
之间传递Activities
,当您打开另一个Activity
时,可以使用intent.PutExtra()方法传递btnState
值:
Intent intent = new Intent(this, typeof(Activity2));
intent.PutExtra("ButtonState", btnState.ToString());
StartActivity(intent);
在系统打开Activity2
:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.layout2);
var clickButton = FindViewById<ImageButton>(Resource.Id.activity2_button);
if (Intent != null)
{
string nameString = Intent.GetStringExtra("ButtonState");
if (nameString.Equals("start"))
{
btnState = ButtonState.start;
clickButton.SetImageResource(Resource.Drawable.ic_pi1);
}
else if (nameString.Equals("stop"))
{
btnState = ButtonState.stop;
clickButton.SetImageResource(Resource.Drawable.ic_pi2);
}
else
{
btnState = ButtonState.ok;
}
}
}