我是 xamarin
android的新手 . 我有一个重置时间的问题我希望将时间传递给 SeeTime
活动,并将该时间的重置时间重置为60,这也将重置 MainActivity
中的时间 .
public class MainActivity : AppCompatActivity
{
public EditText timer;
Button btn;
public int elapsedTime; // counting values integer
Handler myHandler; // used to delay runnable for a second which delay_RATE
int delay_RATE = 1000; //delay
Java.Lang.Runnable r;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
elapsedTime = 60; // default value
myHandler = new Handler(); //initializing handler
r = new Java.Lang.Runnable(Run);
timer = FindViewById<EditText>(Resource.Id.timertxt);
btn = FindViewById<Button>(Resource.Id.btn1);
btn.Click += Btn_Click;
Counter();
}
private void Btn_Click(object sender, System.EventArgs e)
{
elapsedTime = 20;
StartActivity(typeof(SeeTime));
}
void Counter()
{
elapsedTime--; // increment
timer.Text = elapsedTime.ToString();
myHandler.PostDelayed(r, delay_RATE);
if (elapsedTime == 0)
{
elapsedTime = 20;
}
}
void Run()
{ Counter(); }
SeeTime Activity:
public class SeeTime : Activity
{
MainActivity mainActivity;
private EditText timer;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Time);
timer = FindViewById<EditText>(Resource.Id.txtTime);
mainActivity = new MainActivity();
timer.Text = mainActivity.timer.Text;
// Create your application here
}
}
1 回答
您可以尝试以下方法将
elapsedTime
从MainActivity
传递给SeeTime
活动 .//主要活动
// SeeTime acticity
此外,当您从
SeeTime
活动返回MainActivity
时,可以使用OnResume()
方法将elapsedTime
重置为60.详细信息:https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/activity-lifecycle/所以代码是这样的:
主要活动
SeeTime活动: