By this example you can access your DialogFragment throughout the application. You can send arguments to DialogFragment, and also you can retrieve values from DialogFragment.
Screenshot:
Code:
MyCustomDialog.java
custom_dialog.xml
Code for access this DialogFragment from our Activity
MainActivity.java
activity_main.xml
I hope this post is useful to you. kindly share your feedback as comment here.
Screenshot:
Code:
MyCustomDialog.java
package com.andoid.dialogfragment; import android.app.Dialog; import android.app.DialogFragment; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; public class MyCustomDialog extends DialogFragment { Button mButton; EditText mEditText; onSubmitListener mListener; String text = ""; interface onSubmitListener { void setOnSubmitListener(String arg); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Dialog dialog = new Dialog(getActivity()); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); dialog.setContentView(R.layout.custom_dialog); dialog.getWindow().setBackgroundDrawable( new ColorDrawable(Color.TRANSPARENT)); dialog.show(); mButton = (Button) dialog.findViewById(R.id.button1); mEditText = (EditText) dialog.findViewById(R.id.editText1); mEditText.setText(text); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mListener.setOnSubmitListener(mEditText.getText().toString()); dismiss(); } }); return dialog; } }
custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#efefef" android:gravity="center" android:orientation="vertical" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout>
Code for access this DialogFragment from our Activity
MainActivity.java
package com.andoid.dialogfragment; import com.andoid.dialogfragment.MyCustomDialog.onSubmitListener; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.app.Activity; public class MainActivity extends Activity implements onSubmitListener { TextView mTextView; Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.textView1); mButton = (Button) findViewById(R.id.button1); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { MyCustomDialog fragment1 = new MyCustomDialog(); fragment1.mListener = MainActivity.this; fragment1.text = mTextView.getText().toString(); fragment1.show(getFragmentManager(), ""); } }); } @Override public void setOnSubmitListener(String arg) { mTextView.setText(arg); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Change Text" /> </LinearLayout>
I hope this post is useful to you. kindly share your feedback as comment here.
Comments
Post a Comment