如何使用来自另一个活动的新变量刷新android中的活动



我正在开发一个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元素时,这是最好的解决方案

最新更新