java - 选择日期后返回上一个 fragment

标签 java android android-fragments datepicker

当用户单击 datePicker 中的某个日期时,我如何从当前 Activity 转到上一个 fragment 。我可以将该时间戳存储到我的数据库中吗?实际上我想将该日期保存在某个变量中并将其传输到我的数据库中。请帮助我,我是 android 新手

日期 Activity .java

public class DatePick extends AppCompatActivity {
DatePicker datep;
public long date;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.date_layout);

    datep = findViewById(R.id.datePicker);
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    date=calendar.getTimeInMillis();

    Intent intent = new Intent();
    intent.putExtra("date", date);
    setResult(Activity.RESULT_OK, intent);
    finish();
}            

fragment .java

 public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
 CardView cd= view.findViewById(R.id.card);
    cd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            date_Frag();
        }
    });
 }
   public void date_Frag() {
    Intent intent = new Intent(this.getActivity(), DatePick.class);
    startActivityForResult(intent,11111);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 11111 && resultCode == Activity.RESULT_OK) {
        long date = data.getExtras().getLong("date");
    }

最佳答案

如果您只想关闭 Activity(并且不需要发回数据),只需在 DatePick Activity 中调用 finish() 即可。

<小时/>

如果您想将数据从 DatePick Activity 发送回您的 fragment ,您可以使用 onActivityResult()

例如,首先使用 startActivityForResult 启动第二个 Activity:

Intent i = new Intent(this, DatePick.class);
startActivityForResult(i, 11111);

使用setResultDatePick发回数据:

Intent intent = new Intent();
intent.putExtra("date", date);
setResult(Activity.RESULT_OK, intent);
finish();

并在 fragment 中读回它:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 11111 && resultCode == Activity.RESULT_OK) {
        long date = data.getExtras().getLong("date");
    }
}
<小时/>

See this for detailed usage examples

关于java - 选择日期后返回上一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173807/

相关文章:

java - 自动提交错误模式java

android - 带有 Recyclerview 的 fragment 转换支持 25.1.0

android - 如何在android中使用外部数据库

Java-图形用户界面 : adding a door

java - 有人可以为 Hibernate 提供一个简单的 Ant 构建脚本吗?

java - 将 MaltParser 集成到 java 代码中,无需使用单独的进程

android - 迭代 Retrofit 响应

java - 更改我的 android 应用程序包名称是否会更改我的应用程序的 sha1 代码?

android - 在 Activity 中设置 CheckBoxPreference 的值

java - 底部导航显示在其他 fragment 中