Android developmentAndroid tutorial

How To open a DialogFragment in activity Android tutorial

Android DialogFregment and Post data to server using rest API
946views

Hii everyone in this Android Article we are discussing on DialogFragment. hare we can learn How To open a DialogFragment in activity Android tutorial. We are Create a Dialog fragment in Dialog we can create a user form. This android dialog fragment uses in Activity and opens on button click.

So Let’s Start How To open a DialogFragment in activity Android tutorial.

  • How to Create a Dialog Fragment.
  • How to open a DialogFregent in Activity.
  • How to Paresh value Activity to Fragment.
  • How to get value in a fragment.
  • How to Post Data to server Using Rest API in Fragment.

Step 1: Create an Android Project with empty Activity. 

First of creating an android project with an empty activity. if you have already created a project you can create a fragment and add these codes in your fragment.

Step 2:  Create a Fragment and Open your java and XML file add these codes. 

public class Resourse_Share extends DialogFragment implements View.OnClickListener{
    public static final String KEY_UserEmail = "email";//database key
    public static final String KEY_resourceId= "resourceId";
    public static final String KEY_phoneNumber = "phoneNumber";
    public static final String KEY_Username="name";

    EditText Email,Mobile,UserName;
    Button JoinBtn;
    TextView Close_Popup;
    String Token="" ;
    String EventId;
    private String username;
    private String useremail;
    private  String mobile;

    public Resourse_Share() {
        // Required empty public constructor
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View rootView= inflater.inflate(R.layout.fragment_resourse__share, container, false);
        getDialog().setCanceledOnTouchOutside(false);

        SessionManagement sessionManagement= new SessionManagement();
        Token= sessionManagement.getSavedToken(getActivity());
        EventId = getArguments().getString("id");;

        JoinBtn =(Button)rootView.findViewById(R.id.Share_UpBtn);
        UserName = (EditText)rootView.findViewById(R.id.Share_editName);
        Email=(EditText)rootView.findViewById(R.id.Share_editemail);
        Mobile=(EditText)rootView.findViewById(R.id.Share_Mobile);
        Close_Popup = (TextView)rootView.findViewById(R.id.Close_Popup_Share);
        Close_Popup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
        JoinBtn.setOnClickListener(this);

        return rootView;
    }


    public void Share_Resource(){
        final ProgressDialog loading = new ProgressDialog(getActivity());
        loading.setMessage("Please Wait...");
        loading.setCanceledOnTouchOutside(false);
        loading.show();


        HashMap<String, String> params = new HashMap<String, String>();
        params.put(KEY_UserEmail,useremail);
        params.put(KEY_Username,username);
        params.put(KEY_phoneNumber,mobile);
        params.put(KEY_resourceId,EventId);
        JSONObject jsonObject = new JSONObject(params);

        // Enter the correct url for your api service site
        RetryPolicy mRetryPolicy = new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, ConfiURL.Resource_Download_URL, jsonObject,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
//                        Toast.makeText(Login_screen.this,"String Response : "+ response.toString(),Toast.LENGTH_LONG).show();
                        try {
                            Log.d("JSON", String.valueOf(response));
                            loading.dismiss();
                            String Error = response.getString("httpStatus");
                            if (Error.equals("")||Error.equals(null)){

                            }else if(Error.equals("ACCEPTED")){
                                Toast.makeText(getActivity(),"The Post has been shred on the given email Address",Toast.LENGTH_LONG).show();
                                dismiss();
                            }else {

                            }


                        } catch (JSONException e) {
                            e.printStackTrace();
                            loading.dismiss();
                        }
//                        resultTextView.setText("String Response : "+ response.toString());
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                loading.dismiss();
                VolleyLog.d("Error", "Error: " + error.getMessage());
                Toast.makeText(getActivity(), "" + error.getMessage(), Toast.LENGTH_SHORT).show();
            }
        })
        {
            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Authorization", Token);
                return headers;
            }
        };
        RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
        jsonObjectRequest.setRetryPolicy(mRetryPolicy);
        requestQueue.add(jsonObjectRequest);
    }



    @Override
    public void onClick(View v) {
        String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
        useremail = Email.getText().toString().trim();
        username = UserName.getText().toString().trim();
        mobile =Mobile.getText().toString().trim();
        if(username.equals("") || username.equals(null))
        {
            UserName.setError("Full name can't be empty");
            return;

        }
        else if (useremail.equals("") || useremail.equals(null)||!useremail.matches(emailPattern))
        {
            Email.setError("Email address can't be empty");
            return;
        }
        else{
            if (AppStatus.getInstance(getActivity()).isOnline()) {
                Share_Resource();

                //           Toast.makeText(this,"You are online!!!!",Toast.LENGTH_LONG).show();

            } else {

                ContextThemeWrapper ctw = new ContextThemeWrapper( getActivity(), R.style.Theme_AlertDialog);
                final android.app.AlertDialog.Builder alertDialogBuilder = new android.app.AlertDialog.Builder(ctw);
                alertDialogBuilder.setTitle("No internet connection");
                alertDialogBuilder.setMessage("Check your  internet connection or try again");
                alertDialogBuilder.setNegativeButton("Setting", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);
                    }
                });
                alertDialogBuilder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                    }
                });
                alertDialogBuilder.show();
            }
        }
    }

}

Step 3:  Add this code to your Fragment XML file Source Code.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:minHeight="350dp"
    android:minWidth="320dp"
    android:padding="10dp"
    android:gravity="center"
    tools:context=".Fragments.Resourse_Share">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:padding="10dp"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="10dp"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textAppearance="@style/heading"
                android:text="SHARE"/>

            <TextView
                android:id="@+id/Close_Popup_Share"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="10dp"
                android:drawableTint="@color/Black"
                android:layout_gravity="right"
                android:drawableLeft="@drawable/baseline_clear_24"
                android:textStyle="bold"
                android:textAppearance="@style/heading"
                android:text=""/>

        </LinearLayout>

        <EditText
            android:id="@+id/Share_editName"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:singleLine="true"
            android:paddingLeft="15dp"
            android:layout_marginTop="20dp"
            android:textColorHint="@color/Black"
            android:hint="Name (Required)"
            android:background="@drawable/edit_text"
            android:inputType="textEmailAddress"
            android:textColor="@color/BlueDark" />


        <EditText
            android:id="@+id/Share_editemail"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:singleLine="true"
            android:paddingLeft="10dp"
            android:layout_marginTop="20dp"
            android:textColorHint="@color/Black"
            android:background="@drawable/edit_text"
            android:hint="Email Address (Required)"
            android:inputType="textEmailAddress"
            android:textColor="@color/Black" />


        <EditText
            android:id="@+id/Share_Mobile"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:singleLine="true"
            android:layout_marginTop="20dp"
            android:background="@drawable/edit_text"
            android:paddingLeft="10dp"
            android:textColorHint="@color/Black"
            android:hint="Phone Number (optional)"
            android:inputType="number"
            android:maxLength="10"
            android:textColor="@color/Black" />


        <Button
            android:id="@+id/Share_UpBtn"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:gravity="center"
            android:layout_marginTop="20dp"
            android:layout_gravity="center"
            android:background="@drawable/button"
            android:text="Send"
            android:textAppearance="?android:textAppearanceMedium"
            android:textStyle="bold"
            android:textColor="@color/White"/>

    </LinearLayout>>

</LinearLayout>

Step 4:  Add these code In your activity button click whare open DialogFragment. 

public class Blog_Details extends AppCompatActivity {

    Button Share_BlogBtn;
    FragmentManager fm = getSupportFragmentManager();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
        setContentView(R.layout.activity_blog__details);

        Share_BlogBtn = (Button)findViewById(R.id.Share_BlogBtn);
        Share_BlogBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Bundle bundle = new Bundle();
                bundle.putString("id",Blog_Id);
                Resourse_Share resourse_share=new Resourse_Share();
                resourse_share.show(fm, "Dialog Fragment");
                resourse_share.setArguments(bundle);
            }
        });
    }