프래그먼트 (RecoveryFragment)가있는 액티비티 (RecoveryActivity)가 있습니다. 버튼 클릭은 RecoveryFragment가 표시된이 활동을 호출합니다. 난 그냥 활동으로 RecoveryFragment를 직접 호출하고 싶다. 이 단편을 활동으로 변환하는 방법. 여기 멍청한 녀석! 어떤 도움을 주시면 감사하겠습니다.프래그먼트를 액티비티로 변환
public class RecoveryFragment extends Fragment implements Constants {
private ProgressDialog pDialog;
Button mContinueBtn;
EditText mEmail;
String email;
private Boolean loading = false;
public RecoveryFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
initpDialog();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_recovery, container, false);
if (loading) {
showpDialog();
}
mEmail = (EditText) rootView.findViewById(R.id.PasswordRecoveryEmail);
mContinueBtn = (Button) rootView.findViewById(R.id.PasswordRecoveryBtn);
mContinueBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
email = mEmail.getText().toString();
if (!App.getInstance().isConnected()) {
Toast.makeText(getActivity(), R.string.msg_network_error, Toast.LENGTH_SHORT).show();
} else {
Helper helper = new Helper();
if (helper.isValidEmail(email)) {
recovery();
} else {
Toast.makeText(getActivity(), getText(R.string.error_email), Toast.LENGTH_SHORT).show();
}
}
}
});
// Inflate the layout for this fragment
return rootView;
}
public void onDestroyView() {
super.onDestroyView();
hidepDialog();
}
protected void initpDialog() {
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage(getString(R.string.msg_loading));
pDialog.setCancelable(false);
}
protected void showpDialog() {
if (!pDialog.isShowing()) pDialog.show();
}
protected void hidepDialog() {
if (pDialog.isShowing()) pDialog.dismiss();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
public void recovery() {
loading = true;
showpDialog();
CustomRequest jsonReq = new CustomRequest(Request.Method.POST, METHOD_ACCOUNT_RECOVERY, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if (!response.getBoolean("error")) {
Toast.makeText(getActivity(), getText(R.string.msg_password_reset_link_sent), Toast.LENGTH_SHORT).show();
getActivity().finish();
} else {
Toast.makeText(getActivity(), getText(R.string.msg_no_such_user_in_bd), Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
} finally {
loading = false;
hidepDialog();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
loading = false;
hidepDialog();
Toast.makeText(getActivity(), getText(R.string.error_data_loading), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("clientId", CLIENT_ID);
params.put("email", email);
return params;
}
};
App.getInstance().addToRequestQueue(jsonReq);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
}}
왜 조각을 활동으로 변환 하시겠습니까? Use Fragment는 좋은 습관입니다. 그러나 fragment_recovery 레이아웃을 액티비티에 직접 추가 할 수 있습니다. 태그를 사용하여 container_body 레이아웃에 직접 레이아웃을 포함하십시오. –
USKMobility