刷新其他活动Android的活动

时间:2017-05-03 05:22:45

标签: android android-activity

我需要从Android应用程序中的另一个活动重新加载一个活动。第二个活动是一个对话框窗口,并且基于对话框窗口的基本活动应该刷新内容。 (通过对话活动的点击按钮)

3 个答案:

答案 0 :(得分:1)

重新加载您的活动。

context.startActivity(context.getIntent());
context.finish();

答案 1 :(得分:0)

考虑A是您要重新加载的活动而B是另一项活动。

在这种情况下,只需拨打完成()即可 当你从A移动到B.当你从B调用A时,它将再次加载活动A.

答案 2 :(得分:0)

对话窗口和活动是完全不同的东西。

可以从它的对话框中刷新First Activity。你可以使用interface。

这是一个简单的解决方案。在您的First Activity中实现了接口名称IRefreshInteface。它的定义如下:

public interface IRefreshInteface(){
  public void doRefreshValue(String commandValue);
}

现在,如果您在活动中实现IRefreshInteface,您将获得方法doRefreshValue(String commandValue)并在此处编写刷新代码。

@Override
void doRefreshValue(String commandValue){
// Write refresh code here
}

现在,在对话框中,您拥有活动的上下文。使用该上下文对象,您可以轻松地调用此doRefreshValue(String commandValue)方法。以下是示例代码:

public AlertDialog displayMessage(Context context, String title, String message){
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setTitle(title);
        builder.setMessage(message);
        LayoutInflater inflater = LayoutInflater.from(context);
        final View v = inflater.inflate(R.layout.custom_view, null);
        builder.setView(v);
        shipText = (EditText)v.findViewById(R.id.shipNameEditText);
        scientistNameText = (EditText)v.findViewById(R.id.scientistEditText);
        scientistEmailText = (EditText)v.findViewById(R.id.emailEditText);
        volumeText = (EditText)v.findViewById(R.id.volumeEditText);
        colourText  = (EditText)v.findViewById(R.id.colourEditText);
        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                ((IRefreshInteface) context).doRefreshValue("YOUR_COMMAND");


            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        AlertDialog dialog= builder.create();
        dialog.show();
        Button tb = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
        tb.setOnClickListener(new CustomListener(dialog));

        return dialog;
    }

此处,使用以下方式将活动上下文传递给displayMessage()方法并调用活动方法doRefreshValue

((IRefreshInteface) context).doRefreshValue("YOUR_COMMAND");

有关详细信息,请访问herehere

希望这能解决您的问题。抱歉英语不好:)