Java 如何从片段中保存数据
我在活动中包含的底部导航栏中有更改的片段。 在活动中,当用户单击时,我有一个选项菜单(Save),它将保存该片段上的数据 我的问题是我想将数据保存在当前片段中,并通过相同的保存按钮发送回Activity。如何管理或通过 这是我的活动Java 如何从片段中保存数据,java,android,android-fragments,Java,Android,Android Fragments,我在活动中包含的底部导航栏中有更改的片段。 在活动中,当用户单击时,我有一个选项菜单(Save),它将保存该片段上的数据 我的问题是我想将数据保存在当前片段中,并通过相同的保存按钮发送回Activity。如何管理或通过 这是我的活动 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_trip);
BottomNavigationView bottomNav = findViewById(R.id.bottomNavigationView);
bottomNav.setOnNavigationItemSelectedListener(navListener);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new TransportationFragment()).commit();
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close);
setTitle("Plan Page");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.save_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.save_activity:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.nav_transportaion:
selectedFragment = new TransportationFragment();
break;
case R.id.nav_lodging:
selectedFragment = new LodgingFragment();
break;
case R.id.nav_activity:
selectedFragment = new ActivityFragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
selectedFragment).commit();
return true;
}
};
我的三个碎片中的一个
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final FragmentManager fm = ((AppCompatActivity) getActivity()).getSupportFragmentManager();
View view = inflater.inflate(R.layout.activity_fragment, container, false);
setHasOptionsMenu(true);
editTextTitle = view.findViewById(R.id.edit_text_title);
editTextDescription = view.findViewById(R.id.edit_text_description);
numberPickerPriority = view.findViewById(R.id.number_picker_priority);
editTextStartDate = view.findViewById(R.id.edit_text_start_date);
editTextStartDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.setTargetFragment(ActivityFragment.this, REQUEST_CODE);
datePicker.show(fm, "date picker");
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
// check for the results
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
// get date from string
String selectedDate = data.getStringExtra("selectedDate");
// set the value of the editText
editTextStartDate.setText(selectedDate);
}
}
}
谢谢