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