gpt4 book ai didi

android - 日期计算器

转载 作者:行者123 更新时间:2023-11-30 03:14:20 24 4
gpt4 key购买 nike

这是我从日期选择器中选择日期的代码。

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;

public class CurrentDateActivity extends Activity {
/** Called when the activity is first created. */

private EditText mDateDisplay,mDateSelect;
private int mYear,mMonth,mDay;
private int year,month,day;

Button selectBtn = null;
Calendar c = null;
static final int DATE_DIALOG_ID = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.date_select);

selectBtn = (Button)findViewById(R.id.BtnSubmit);
mDateDisplay = (EditText) findViewById(R.id.currentDate);
mDateSelect = (EditText)findViewById(R.id.dateofBirth);

// add a click listener to the button
mDateSelect.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});

getCurrentDate();//get the current date


// display the current date
mDateDisplay.setText(getString(R.string.strSelectedDate,
new StringBuilder()
// Month is 0 based so add 1
.append(mDay).append("/")
.append(mMonth + 1).append("/")
.append(mYear).append(" "))
);
}

private void getCurrentDate(){
// get the current date
c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
}

// updates the date in the EditText
private void updateDisplay() {
mDateSelect.setText(getString(R.string.strSelectedDate,
new StringBuilder()

.append(mDay).append("/")
.append(mMonth + 1).append("/")
.append(mYear).append(" "))
);
}

// the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};



@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:

return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
mDay);
}
return null;
}

}

一切都很好,但现在我想同时获取当前日期和用户在另一个 Activity 中输入的日期,以便计算它们之间的差异。但是我无法理解如何通过 Intent 传递日期。请帮忙

最佳答案

如果您要使用共享首选项怎么办?

    //get access to the shared preferences
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();


//get the current time
Date now =new Date();

//create timestamp from the time the user picked
@SuppressWarnings("deprecation")
@Deprecated
Timestamp timestamp = new Timestamp(mYear, mMonth, mDay, now.getHour, now.getMinute, 0, 0);

//store the timestamp in your shared preferences
editor.putString(getResources().getString(R.string.calcDate), timestamp.toString );
editor.apply();



//And then in your next activity, you can pull the value back out like
//Pull the long timestamp back out from the shared preferences
long pickedTs = Long.parseLong(preferences.getString(getResources().getString(R.string.calcDate), ""));
//Then create a new Date object using the timestamp
Date pickedDate = new Date(pickedTs);
//Then clear that preference for the next time
editor.putString(getResources().getString(R.string.calcDate), "");
editor.apply();

这与我目前在我的应用程序中使用的系统类似。 http://developer.android.com/reference/android/content/SharedPreferences.html http://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html可能有更性感的方法来做到这一点,但这只是我的建议。希望对你有帮助

关于android - 日期计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20400801/

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