gpt4 book ai didi

java - 当用户单击后退时,有什么方法可以在 fragment 中调用 saveNote() 吗?

转载 作者:行者123 更新时间:2023-12-02 01:32:08 24 4
gpt4 key购买 nike

我的 fragment 中有一个保存菜单选项,我可以在其中保存用户的数据,我还想在 fragment 中保存回压数据?我怎样才能实现这一点?

这是我的保存方法:

 public void saveNote() {
title = edit_title.getText().toString().trim();
text = txtnote2.getText().toString().trim();
if (title.isEmpty()) {
Toast.makeText(getActivity(), "Please enter a title", Toast.LENGTH_SHORT).show();
}

else if (!text.isEmpty() || !title.isEmpty()) {
long date = new Date().getTime(); // get current time;

if (temp == null) {
temp = new Note(title, text, date,activityName);
dao.insertNote(temp); //inserts note record to db;
} else {
temp.setNoteTitle(title);
temp.setNoteText(text);
temp.setNoteDate(date);
temp.setActivityName(activityName);
dao.updateNote(temp);
}
Toast.makeText(getActivity(), "Saved!!", Toast.LENGTH_SHORT).show();
// finish(); //return to main activity
getActivity().startActivity(new Intent(getActivity(),MainActivity.class));
getActivity().finish();
}
}

我想在 fragment 中调用这个方法 onbackpressed如何做到这一点?

最佳答案

要告诉 fragment 何时按下后退按钮,首先您需要一个所有其他 fragment 都继承自的基本 fragment 。这个基本 fragment 实现了以下功能:

 public interface OnBackPressed {
void onBackPressed();
}

public class BaseFragment extends Fragment implements OnBackPressed {

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

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}

@Override
public void onBackPressed() {
// do what you want to save
saveNote()}
}

现在,在您的托管 Activity 中,在弹出任何 fragment 之前调用接口(interface)的任何实现:

@Override
public void onBackPressed() {
saveData()
super.onBackPressed();
}

private void saveData(){
List<Fragment> fragments = getSupportFragmentManager().getFragments();
for(Fragment f : fragments){
if(f != null && f instanceof BaseFragment)
((BaseFragment)f).onBackPressed();
}
}

关于java - 当用户单击后退时,有什么方法可以在 fragment 中调用 saveNote() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55872314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com