我需要从Android应用程序中的另一个活动重新加载一个活动。第二个活动是一个对话框窗口,并且基于对话框窗口的基本活动应该刷新内容。 (通过对话活动的点击按钮)
答案 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");
希望这能解决您的问题。抱歉英语不好:)