我正在开发一个android应用程序,目前我有一个myActivity,其中有一个带有当前时间的按钮(使用带有变量"date"的setTitle())。
当我点击这个按钮时,我会打开一个日期选择器。在这个日期选择器中,我可以更改日期并存储它。现在我想更新myActivity中的按钮。
如何"刷新"此活动并将按钮的标题设置为新选择的日期?在不丢失更改后的变量的情况下?
我在PrepareOptionsMenu上尝试过公共布尔值,但它似乎没有任何作用。
我知道它存储了新的日期(通过调试),我只需要以某种方式重新加载它。
如果您使用Intent重新创建Actitity,您可以添加Intent附加:
yourIntent.putExtra("Date", date.toString());
并在onCreate():中检索
date = getIntent.getStringExtra("Date");
不过,要更改标题栏,您只需要这样做:
setTitle(date.toString());
有很多解决方案,你可以尝试put额外的东西,你可以使用静态变量,对我来说最好使用委托,如下所示:
//creating an interface that will be responsible for refreshing date
OnDateChanged.java
public interface OnDateChanged
{
ondatechange(X x);/* x is your date value of type date*/
}
// create your custom dialog
DatePickerDialog .java
public class DatePickerDialog extends Dialog
{
private OnDateChanged mListener;
public DatePickerDialog (Context context, OnDateChanged listener )
{
super(context);
mListener = listener;
........
}
......
// on certain click you call this
mListener.colorChanged();
}
// implements OnDateChanged here
MyActivity.java
public class MyActivity extends Activity implements OnDateChanged
{
...
@Override
public void ondatechange(X x)
{
// do something with date "x"
}
....
// creating dialog goes here on click or something
new DatePickerDialog (context, this).show();
}
当你需要更新MyActivity中跟踪日期的ui元素时,这是最好的解决方案