我想创建在用户登录之前,显示用户一个倒计时的对话框。 超时是从另一个活动设置。
我写了下面的代码:
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.Bundle;
public class SessionInactivityDialog extends DialogFragment {
public void setInactivityTimeout(long timeout) {
Resources res = getActivity().getResources();
String text = String.format(res.getString(R.string.iminent_logout_text), (timeout / 1000));
((AlertDialog)getDialog()).setMessage(text);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.iminent_logout);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
SessionActivity activity = (SessionActivity)getActivity();
activity.resetTimer();
}
});
return builder.create();
}
}
该对话框调用这些行:
private void showIminentLogoutDialog(long timeout) {
mInactivityDialog.show(getFragmentManager(), TAG);
mInactivityDialog.setInactivityTimeout(timeout);
}
即使对话框打开后超时设置, getActivity()
在setInactivityTimeout()
为null
。
如何在片段得到正确的资源?