实现点击按钮d出对话框型fra,并从第二fragment获取EditeText的数据返回到第一Fra中并显示。
第一fra
1 package com.example.ourdiary.entrIEs.write_page; 2 3 import androID.os.Bundle; 4 import androID.util.Log; 5 import androID.vIEw.LayoutInflater; 6 import androID.vIEw.VIEw; 7 import androID.vIEw.VIEwGroup; 8 import androID.Widget.TextVIEw; 9 10 import androIDx.annotation.NonNull;11 import androIDx.annotation.Nullable;12 import androIDx.fragment.app.Fragment;13 import androIDx.fragment.app.FragmentResultListener;14 15 import com.example.ourdiary.R;16 17 import com.example.ourdiary.entrIEs.DiaryActivity;18 import com.Google.androID.material.floatingactionbutton.floatingActionbutton;19 20 21 public class DiaryWriteFragment extends Fragment {22 23 private DiaryActivity activity;24 floatingActionbutton fab_diary_write;25 TextVIEw tv_Title,tv_content;26 String result_Title,result_content;27 28 29 public DiaryWriteFragment(DiaryActivity activity) {30 this.activity = activity;31 }32 33 34 35 public voID onCreate(Bundle savedInstanceState) {36 super.onCreate(savedInstanceState);37 getParentFragmentManager().setFragmentResultListener("requestDiaryinputKey", this, new FragmentResultListener() {38 @OverrIDe39 public voID onFragmentResult(@NonNull String requestKey, @NonNull Bundle bundle) {40 // We use a String here, but any type that can be put in a Bundle is supported41 result_Title = bundle.getString("bundle_Title");42 result_content = bundle.getString("bundle_content");43 // Log.d("test",result_Title);44 // Log.d("test",result_content);45 tv_Title.setText(result_Title);46 tv_content.setText(result_content);47 }48 });49 }50 51 /**52 *53 *@author home54 *@time 2021/3/20 0:0555 */56 public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container,57 Bundle savedInstanceState) {58 VIEw rootVIEw = inflater.inflate(R.layout.fg_diary_write,container,false);59 return rootVIEw;60 }61 62 @OverrIDe63 public voID onVIEwCreated(@NonNull VIEw vIEw, @Nullable Bundle savedInstanceState) {64 tv_Title = vIEw.findVIEwByID(R.ID.tv_fg_diary_write_Title);65 tv_content = vIEw.findVIEwByID(R.ID.tv_fg_diary_write_content);66 fab_diary_write = vIEw.findVIEwByID(R.ID.fab_diary_write);67 68 fab_diary_write.setonClickListener(vIEw1 -> {69 DiaryWriteinputFragment diaryWriteinputFragment = new DiaryWriteinputFragment();70 diaryWriteinputFragment.show(activity.getSupportFragmentManager(),"diaryinputDialogFragment");71 });72 }73 74 }
第二fra
1 package com.example.ourdiary.entrIEs.write_page; 2 3 import androID.app.Dialog; 4 import androID.content.DialogInterface; 5 import androID.os.Bundle; 6 import androID.util.Log; 7 import androID.vIEw.LayoutInflater; 8 import androID.vIEw.VIEw; 9 import androID.Widget.button;10 import androID.Widget.EditText;11 12 import androIDx.annotation.NonNull;13 import androIDx.annotation.Nullable;14 import androIDx.appcompat.app.AlertDialog;15 import androIDx.fragment.app.DialogFragment;16 17 import com.example.ourdiary.R;18 import com.Google.androID.material.floatingactionbutton.floatingActionbutton;19 20 public class DiaryWriteinputFragment extends DialogFragment {21 22 EditText et_Title,et_content;23 floatingActionbutton fab_save;24 25 @OverrIDe26 public Dialog onCreateDialog(Bundle savedInstanceState) {27 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());28 29 LayoutInflater inflater = getActivity().getLayoutInflater();30 VIEw vIEw = inflater.inflate(R.layout.fg_diary_write_input, null);31 builder.setVIEw(vIEw);32 et_Title = vIEw.findVIEwByID(R.ID.et_diary_write_Title);33 et_content = vIEw.findVIEwByID(R.ID.et_diary_write_content);34 fab_save = vIEw.findVIEwByID(R.ID.fab_diary_input_save);35 36 37 fab_save.setonClickListener(v -> {38 // Log.d("test","buttonsave!");39 Bundle result = new Bundle();40 result.putString("bundle_Title", String.valueOf(et_Title.getText()));41 result.putString("bundle_content", String.valueOf(et_content.getText()));42 getParentFragmentManager().setFragmentResult("requestDiaryinputKey", result);43 dismiss();//使此fragment消失44 });45 return builder.create();46 }47 48 @OverrIDe49 public voID onCancel(@NonNull DialogInterface dialog) {50 super.onCancel(dialog);51 }52 53 }
第一fra的xml
1 <?xml version="1.0" enCoding="utf-8"?> 2 <relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" 3 androID:layout_wIDth="match_parent" 4 androID:layout_height="match_parent" 5 xmlns:tools="http://schemas.androID.com/tools" 6 androID:orIEntation="vertical"> 7 8 <linearLayout 9 androID:layout_wIDth="match_parent"10 androID:layout_height="wrap_content"11 androID:orIEntation="vertical">12 13 <TextVIEw14 androID:ID="@+ID/tv_fg_diary_write"15 androID:layout_wIDth="wrap_content"16 androID:layout_height="wrap_content"17 androID:text="this is write fragment!"18 androID:textSize="30sp"19 androID:paddingleft="10dp"/>20 21 <TextVIEw22 androID:ID="@+ID/tv_fg_diary_write_Title"23 androID:layout_wIDth="match_parent"24 androID:layout_height="wrap_content"/>25 26 <TextVIEw27 androID:ID="@+ID/tv_fg_diary_write_content"28 androID:layout_wIDth="match_parent"29 androID:layout_height="wrap_content"/>30 31 32 <relativeLayout33 androID:layout_alignParentRight="true"34 androID:layout_alignParentBottom="true"35 androID:layout_wIDth="wrap_content"36 androID:layout_height="wrap_content">37 38 <linearLayout39 androID:layout_wIDth="wrap_content"40 androID:layout_height="wrap_content"41 androID:orIEntation="vertical"42 androID:paddingRight="20dp"43 androID:paddingBottom="20dp">44 45 <com.Google.androID.material.floatingactionbutton.floatingActionbutton46 androID:backgroundTint="@color/light_blue"47 androID:ID="@+ID/fab_diary_write"48 androID:layout_wIDth="wrap_content"49 androID:layout_height="wrap_content"50 androID:contentDescription="add"51 androID:tint="@color/color_White"52 androID:src="@drawable/iv_memo_item_add_icon"/>53 </linearLayout>54 </relativeLayout>55 56 </relativeLayout>
第二fra的xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <EditText androID:ID="@+ID/et_diary_write_Title" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:hint="enter your Title here!" androID:textcolorHint="@color/color_black"/> <EditText androID:ID="@+ID/et_diary_write_content" androID:layout_wIDth="match_parent" androID:layout_height="200dp" androID:layout_marginleft="10dp" androID:layout_marginRight="10dp" androID:hint="enter your content here!" androID:textcolorHint="@color/color_black"/> <relativeLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content"> <com.Google.androID.material.floatingactionbutton.floatingActionbutton androID:backgroundTint="@color/light_blue" androID:ID="@+ID/fab_diary_input_save" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:contentDescription="add" androID:tint="@color/color_White" androID:layout_centerHorizontal="true" androID:src="@drawable/iv_diary_save"/> </relativeLayout></linearLayout>
总结
以上是内存溢出为你收集整理的不同Fragment传数据全部内容,希望文章能够帮你解决不同Fragment传数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)