我按下按钮后禁用按钮。我想让它自动激活 第二天早上12点。我真的不知道该怎么做。不知怎的,我尝试并编写了下面的代码。
单击后代码会禁用按钮。但是一旦应用程序关闭,它就会失去状态。请帮帮我怎么做?
public class MainActivity : Activity
{
Button button1;
Button button2;
protected override void OnCreate (Bundle savedInstanceState)
{
base.OnCreate (savedInstanceState);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
mybroadcast myrec = new mybroadcast ();
Database sqldb1 = ((GlobalClass)this.Application).sqldb;//This will contain "Hello World"
string stringFromApplicationClass = ((GlobalClass)this.Application).myString;//This will contain "Hello World"
var now = DateTime.Now;
string dataFormatada = string.Format("{0:00}/{1:00}/{2:0000}", now.Month, now.Day, now.Year);
string currentTime = (string.Format ("Current Time: {0}", now.Hour));
// Get our button from the layout resource,
// and attach an event to it
button1 = FindViewById<Button> (Resource.Id.Button1);
button2 = FindViewById<Button> (Resource.Id.Button2);
button1.Click += delegate {
sqldb1.AddRecord (1);
};
button2.Click += delegate {
sqldb1.AddRecord (0);
};
}
public void start()
{
Intent myIntent = new Intent (this,typeof( mybroadcast));
AlarmManager alarmMgr = (AlarmManager) this.GetSystemService(Context.AlarmService);
PendingIntent pendingIntent = PendingIntent.GetService(this, 0, myIntent, 0);
Calendar calendar = Calendar.GetInstance (Java.Util.TimeZone.Default);
calendar.Set(CalendarField.HourOfDay, 12);
calendar.Set(CalendarField.Millisecond, 00);
calendar.Set(CalendarField.Second, 00);
alarmMgr.SetRepeating(AlarmType.Rtc,0, 10, pendingIntent); //Repeat every 24 hours
}
public class mybroadcast:BroadcastReceiver
{
public override void OnReceive(Context context, Intent myIntent)
{
((MainActivity)context).enablebutton();
}
}
public override bool OnCreateOptionsMenu(IMenu menu)
{
base.OnCreateOptionsMenu (menu);
MenuInflater inflater = this.MenuInflater;
inflater.Inflate (Resource.Menu.items, menu);
return base.OnCreateOptionsMenu(menu);
}
public override bool OnOptionsItemSelected (IMenuItem item)
{
base.OnOptionsItemSelected (item);
switch (item.ItemId)
{
case Resource.Id.week:
StartActivity(typeof(SecondActivity));
break;
case Resource.Id.month:
{
StartActivity(typeof(ThirdActivity));
break;
}
default:
break;
}
return true;
}
public void disablebutton()
{
button1.Enabled = false;
button2.Enabled = false;
}
public void enablebutton()
{
button1.Enabled = true;
button2.Enabled = true;
}
}
答案 0 :(得分:0)
即使这段代码是在java中,概念也是一样的。警报响起后,将调用Broadcastreceiver的onReceive,您可以在其中编辑共享首选项以启用/禁用视图。如果您不了解共享偏好,请参阅以下链接:How do I use SharedPreferences in Xamarin.Android?,SharedPreferences Example in Xamarin Android
<强>广播接收器:强>
public class ReminderActivity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Use sharepreference and set the button state disabled or enabled.
SharedPreferences mSharedPreferences = getSharedPreferences("MyPref", 0);
mSharedPreferences..edit().putBoolean("btn_enable", true).commit();
}
}
因此,一旦打开应用程序,请检查共享偏好值并相应地启用或禁用按钮状态。 希望这会有所帮助。