如何使用其他活动中的新变量刷新android中的活动

时间:2013-07-03 07:25:00

标签: android date android-activity fragment

我正在开发一个Android应用程序,目前我有一个myActivity,我有一个当前时间的按钮(使用带有变量'date'的setTitle())。

当我点击此按钮时,我打开一个日期选择器。在这个日期选择器中,我可以更改日期并存储它。现在我想更新myActivity中的按钮。

如何“刷新”此活动并将按钮标题设置为新选择的日期?不丢失变化的变量?

我尝试过公共布尔值onPrepareOptionsMenu,但它似乎没有做任何事情。

我知道它存储了新日期(通过调试),我只需要以某种方式重新加载它。

2 个答案:

答案 0 :(得分:0)

如果您使用Intent重新创建Actitity,则可以添加Intent附加功能:

yourIntent.putExtra("Date", date.toString());

并在onCreate()中检索它:

date = getIntent.getStringExtra("Date");

要更改标题栏,您只需要这样做:

setTitle(date.toString());

答案 1 :(得分:0)

有很多解决方案,你可以尝试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元素时,这是最佳解决方案