当用户单击 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);
使用setResult
从DatePick
发回数据:
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");
}
}
<小时/>
关于java - 选择日期后返回上一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173807/