Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从另一个活动刷新活动_Android_Android Activity - Fatal编程技术网

Android 从另一个活动刷新活动

Android 从另一个活动刷新活动,android,android-activity,Android,Android Activity,我需要从android应用程序中的另一个活动重新加载一个活动。第二个活动是一个对话框窗口,基本活动应根据对话框窗口刷新内容。(通过单击对话框活动的按钮)认为A是要重新加载的活动,B是另一个活动 context.startActivity(context.getIntent()); context.finish(); 在这种情况下,只需调用finish() 当您从A移动到B时。当您从B调用A时,它将再次加载活动A。对话框窗口和活动完全不同 可以从其对话框中刷新第一个活动。您可以使用接口来完成 这

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

认为A是要重新加载的活动,B是另一个活动

context.startActivity(context.getIntent());
context.finish();
在这种情况下,只需调用finish()
当您从A移动到B时。当您从B调用A时,它将再次加载活动A。

对话框窗口和活动完全不同

可以从其对话框中刷新第一个活动。您可以使用接口来完成

这里有一个简单的解决方案。在第一个活动中,实现一个接口名
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");
欲了解更多信息,请访问

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

重新加载您的活动

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

您是否在第一个活动中使用了
startActivityForResult
?是的。我使用startActivityForResult来初始化第二个活动确定,然后您只需要实现
onActivityResult
来执行“刷新”操作请将代码放在这里