选择日期后返回上一个片段

时间:2018-03-08 13:04:29

标签: java android android-fragments datepicker

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

date_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");
    }

1 个答案:

答案 0 :(得分:0)

如果您只想关闭活动(并且不需要发回数据),只需在finish()活动中致电DatePick即可。

如果您想将DatePick活动中的数据发回给您的片段,可以使用onActivityResult()

例如,首先使用startActivityForResult开始您的第二项活动:

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

使用DatePick发送setResult的数据:

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

并在你的片段中读回来:

@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