Java 在android studio中不使用DatePickeView读取选定日期
我是Parvanshu Sharma,我是编程初学者,我正在制作一个应用程序,其中 我已经这样做了,点击按钮时会出现一个日期选择器对话框,按钮文本将被设置为用户选择的,目前有3个按钮用于此,我甚至有一个实时数据库用于在Firebase上上载此日期,但现在我在获取每个唯一日期并上载时遇到问题,我无法获取所选日期 就像我的每个问题一样- MainActivity.java(太大了,所以我没有显示导入)Java 在android studio中不使用DatePickeView读取选定日期,java,android,class,android-dialogfragment,Java,Android,Class,Android Dialogfragment,我是Parvanshu Sharma,我是编程初学者,我正在制作一个应用程序,其中 我已经这样做了,点击按钮时会出现一个日期选择器对话框,按钮文本将被设置为用户选择的,目前有3个按钮用于此,我甚至有一个实时数据库用于在Firebase上上载此日期,但现在我在获取每个唯一日期并上载时遇到问题,我无法获取所选日期 就像我的每个问题一样- MainActivity.java(太大了,所以我没有显示导入) 尝试使用接口。你将在你的主要活动中有所有3个日期,现在你可以用它们做任何事情 public cla
尝试使用接口。你将在你的主要活动中有所有3个日期,现在你可以用它们做任何事情
public class DatePickerFragment extends DialogFragment {
private static applyDate mInterface;
private static int buttonNumberHere;
public interface applyDate {
void setDate(int selectedYear, int selectedMonth, int selectedDay, int buttonNumber);
}
public static DatePickerFragment newInstance(int buttonNumber, applyDate context)
{
DatePickerFragment fragment = new DatePickerFragment();
mInterface = ((applyDate) context);
buttonNumberHere = buttonNumber;
return fragment;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getContext(), datePickerListener, year, month, day);
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
mInterface.setDate(selectedYear, selectedMonth, selectedDay, buttonNumberHere);
}
};
主要活动
public class MainActivity extends AppCompatActivity implements applyDate, AdapterView.OnItemSelectedListener {
String CurrentDateString;
TextView mainDate;// Idk what is this
Integer OrderQuantity = 3;
String itemOneDate;
String itemTwoDate;
String itemThreeDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button SelectDate1 = findViewById(R.id.SelectDateButton1);
Button SelectDate2 = findViewById(R.id.SelectDateButton2);
Button SelectDate3 = findViewById(R.id.SelectDateButton3);
SelectDate1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment datePicker = DatePickerFragment.newInstance(1, MainActivity.this);
datePicker.show(getSupportFragmentManager(), "Pick item order date");
mainDate = SelectDate1;
}
});
SelectDate2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment datePicker = DatePickerFragment.newInstance(2, MainActivity.this);
datePicker.show(getSupportFragmentManager(), "Pick item order date");
mainDate = SelectDate2;
}
});
SelectDate3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment datePicker = DatePickerFragment.newInstance(3, MainActivity.this);
datePicker.show(getSupportFragmentManager(), "Pick item order date");
mainDate = SelectDate3;
}
});
ArrayAdapter<CharSequence> FoodAdapter = ArrayAdapter.createFromResource(this, R.array.FoodList, android.R.layout.simple_spinner_item);
FoodAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner SelectItem1 = findViewById(R.id.SelectItem1);
SelectItem1.setAdapter(FoodAdapter);
SelectItem1.setOnItemSelectedListener(this);
Spinner SelectItem2 = findViewById(R.id.SelectItem2);
SelectItem2.setAdapter(FoodAdapter);
SelectItem2.setOnItemSelectedListener(this);
Spinner SelectItem3 = findViewById(R.id.SelectItem3);
SelectItem3.setAdapter(FoodAdapter);
SelectItem3.setOnItemSelectedListener(this);
ArrayAdapter<CharSequence> QuantityAdapter = ArrayAdapter.createFromResource(this, R.array.Quantity, android.R.layout.simple_spinner_item);
QuantityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner Quantity1 = findViewById(R.id.SelectQuantity1);
Quantity1.setAdapter(QuantityAdapter);
Quantity1.setOnItemSelectedListener(this);
Spinner Quantity2 = findViewById(R.id.SelectQuantity2);
Quantity2.setAdapter(QuantityAdapter);
Quantity2.setOnItemSelectedListener(this);
Spinner Quantity3 = findViewById(R.id.SelectQuantity3);
Quantity3.setAdapter(QuantityAdapter);
Quantity3.setOnItemSelectedListener(this);
Button DoneButton = findViewById(R.id.DoneButton);
EditText PersonName = findViewById(R.id.PersonName);
EditText PersonPhone = findViewById(R.id.PersonPhone);
EditText PersonAddress = findViewById(R.id.PersonAddress);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DoneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Idk how to set date but now you have all three dates
DatabaseReference dateOne = database.getReference(itemOneDate + "/DateOne");
dateOne.setValue(itemOneDate);
DatabaseReference dateTwo = database.getReference(itemOneDate + "/DateTwo");
dateTwo.setValue(itemTwoDate);
DatabaseReference dateThree = database.getReference(itemThreeDate + "/DateThree");
dateThree.setValue(itemThreeDate);
DatabaseReference Name = database.getReference(PersonPhone.getText().toString() + "/Name");
Name.setValue(PersonName.getText().toString());
DatabaseReference Phone = database.getReference(PersonPhone.getText().toString() + "/Phone");
Phone.setValue(PersonPhone.getText().toString());
DatabaseReference Address = database.getReference(PersonPhone.getText().toString() + "/Address");
Address.setValue(PersonAddress.getText().toString());
if (Quantity1.getSelectedItem().toString().equals("0")) {
OrderQuantity -= 1;
}
if (Quantity2.getSelectedItem().toString().equals("0")) {
OrderQuantity -= 1;
}
if (Quantity3.getSelectedItem().toString().equals("0")) {
OrderQuantity -= 1;
}
DatabaseReference OrderQuantities = database.getReference(PersonPhone.getText().toString()+"/OrderQuantity");
OrderQuantities.setValue(OrderQuantity);
if (Quantity1.getSelectedItem().toString() != "0") {
//I want some solution HERE
}
}
});
}
@Override
public void setDate(int selectedYear, int selectedMonth, int selectedDay, int buttonNumber){
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, selectedYear);
c.set(Calendar.MONTH, selectedMonth);
c.set(Calendar.DAY_OF_MONTH, selectedDay);
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
String CurrentDateString = format.format(c.getTime());
mainDate.setText(CurrentDateString);
if (buttonNumber == 1){
itemOneDate = CurrentDateString;
}
else if (buttonNumber == 2){
itemTwoDate = CurrentDateString;
}
else if (buttonNumber == 3){
itemThreeDate = CurrentDateString;
}
}
}
public类MainActivity扩展了AppCompativeActivity实现了applyDate、AdapterView.OnItemSelectedListener{
字符串CurrentDateString;
TextView mainDate;//Idk这是什么
整数OrderQuantity=3;
字符串itemOneDate;
字符串itemTwoDate;
字符串itemThreeDate;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按钮SelectDate1=findViewById(R.id.SelectDateButton1);
按钮SelectDate2=findViewById(R.id.SelectDateButton2);
按钮SelectDate3=findViewById(R.id.SelectDateButton3);
SelectDate1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
DatePickerFragment datePicker=DatePickerFragment.newInstance(1,MainActivity.this);
显示(getSupportFragmentManager(),“挑选项目订单日期”);
mainDate=选择日期1;
}
});
SelectDate2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
DatePickerFragment datePicker=DatePickerFragment.newInstance(2,MainActivity.this);
显示(getSupportFragmentManager(),“挑选项目订单日期”);
mainDate=选择日期2;
}
});
SelectDate3.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
DatePickerFragment datePicker=DatePickerFragment.newInstance(3,MainActivity.this);
显示(getSupportFragmentManager(),“挑选项目订单日期”);
mainDate=选择日期3;
}
});
ArrayAdapter FoodAdapter=ArrayAdapter.createFromResource(这个,R.array.FoodList,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器SelectItem1=findViewById(R.id.SelectItem1);
选择Item1.setAdapter(FoodAdapter);
SelectItem1.setOnItemSelectedListener(此);
微调器SelectItem2=findViewById(R.id.SelectItem2);
选择Item2.setAdapter(FoodAdapter);
SelectItem2.setOnItemSelectedListener(此);
微调器SelectItem3=findViewById(R.id.SelectItem3);
选择Item3.setAdapter(FoodAdapter);
SelectItem3.setOnItemSelectedListener(此);
ArrayAdapter QuantityAdapter=ArrayAdapter.createFromResource(这个,R.array.Quantity,android.R.layout.simple\u微调器\u项);
QuantityAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器数量1=findViewById(R.id.SelectQuantity1);
Quantity1.设置适配器(QuantityAdapter);
Quantity1.setOnItemSelectedListener(此);
微调器数量2=findViewById(R.id.SelectQuantity2);
Quantity2.设置适配器(QuantityAdapter);
Quantity2.setOnItemSelectedListener(此);
微调器数量3=findViewById(R.id.SelectQuantity3);
Quantity3.设置适配器(QuantityAdapter);
Quantity3.setOnItemSelectedListener(此);
按钮DoneButton=findviewbyd(R.id.DoneButton);
EditText PersonName=findViewById(R.id.PersonName);
EditText PersonPhone=findViewById(R.id.PersonPhone);
EditText PersonalAddress=findViewById(R.id.PersonalAddress);
FirebaseDatabase=FirebaseDatabase.getInstance();
DoneButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//Idk如何设置日期,但现在您有了所有三个日期
DatabaseReference dateOne=database.getReference(itemOneDate+“/dateOne”);
dateOne.setValue(itemOneDate);
DatabaseReference dateTwo=database.getReference(itemOneDate+“/dateTwo”);
dateTwo.setValue(itemtowdate);
DatabaseReference dateThree=database.getReference(itemThreeDate+“/dateThree”);
dateThree.setValue(itemThreeDate);
DatabaseReference Name=database.getReference(PersonPhone.getText().toString()+“/Name”);
Name.setValue(PersonName.getText().toString());
DatabaseReference Phone=database.getReference(PersonPhone.getText().toString()+“/Phone”);
setValue(PersonPhone.getText().toString());
DatabaseReference Address=database.getReference(PersonPhone.getText().toString()+“/Address”);
setValue(PersonAddress.getText().toString());
如果(Quantity1.getSelectedItem().toString().equ)
public class DatePickerFragment extends DialogFragment {
private static applyDate mInterface;
private static int buttonNumberHere;
public interface applyDate {
void setDate(int selectedYear, int selectedMonth, int selectedDay, int buttonNumber);
}
public static DatePickerFragment newInstance(int buttonNumber, applyDate context)
{
DatePickerFragment fragment = new DatePickerFragment();
mInterface = ((applyDate) context);
buttonNumberHere = buttonNumber;
return fragment;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getContext(), datePickerListener, year, month, day);
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
mInterface.setDate(selectedYear, selectedMonth, selectedDay, buttonNumberHere);
}
};
public class MainActivity extends AppCompatActivity implements applyDate, AdapterView.OnItemSelectedListener {
String CurrentDateString;
TextView mainDate;// Idk what is this
Integer OrderQuantity = 3;
String itemOneDate;
String itemTwoDate;
String itemThreeDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button SelectDate1 = findViewById(R.id.SelectDateButton1);
Button SelectDate2 = findViewById(R.id.SelectDateButton2);
Button SelectDate3 = findViewById(R.id.SelectDateButton3);
SelectDate1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment datePicker = DatePickerFragment.newInstance(1, MainActivity.this);
datePicker.show(getSupportFragmentManager(), "Pick item order date");
mainDate = SelectDate1;
}
});
SelectDate2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment datePicker = DatePickerFragment.newInstance(2, MainActivity.this);
datePicker.show(getSupportFragmentManager(), "Pick item order date");
mainDate = SelectDate2;
}
});
SelectDate3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerFragment datePicker = DatePickerFragment.newInstance(3, MainActivity.this);
datePicker.show(getSupportFragmentManager(), "Pick item order date");
mainDate = SelectDate3;
}
});
ArrayAdapter<CharSequence> FoodAdapter = ArrayAdapter.createFromResource(this, R.array.FoodList, android.R.layout.simple_spinner_item);
FoodAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner SelectItem1 = findViewById(R.id.SelectItem1);
SelectItem1.setAdapter(FoodAdapter);
SelectItem1.setOnItemSelectedListener(this);
Spinner SelectItem2 = findViewById(R.id.SelectItem2);
SelectItem2.setAdapter(FoodAdapter);
SelectItem2.setOnItemSelectedListener(this);
Spinner SelectItem3 = findViewById(R.id.SelectItem3);
SelectItem3.setAdapter(FoodAdapter);
SelectItem3.setOnItemSelectedListener(this);
ArrayAdapter<CharSequence> QuantityAdapter = ArrayAdapter.createFromResource(this, R.array.Quantity, android.R.layout.simple_spinner_item);
QuantityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner Quantity1 = findViewById(R.id.SelectQuantity1);
Quantity1.setAdapter(QuantityAdapter);
Quantity1.setOnItemSelectedListener(this);
Spinner Quantity2 = findViewById(R.id.SelectQuantity2);
Quantity2.setAdapter(QuantityAdapter);
Quantity2.setOnItemSelectedListener(this);
Spinner Quantity3 = findViewById(R.id.SelectQuantity3);
Quantity3.setAdapter(QuantityAdapter);
Quantity3.setOnItemSelectedListener(this);
Button DoneButton = findViewById(R.id.DoneButton);
EditText PersonName = findViewById(R.id.PersonName);
EditText PersonPhone = findViewById(R.id.PersonPhone);
EditText PersonAddress = findViewById(R.id.PersonAddress);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DoneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Idk how to set date but now you have all three dates
DatabaseReference dateOne = database.getReference(itemOneDate + "/DateOne");
dateOne.setValue(itemOneDate);
DatabaseReference dateTwo = database.getReference(itemOneDate + "/DateTwo");
dateTwo.setValue(itemTwoDate);
DatabaseReference dateThree = database.getReference(itemThreeDate + "/DateThree");
dateThree.setValue(itemThreeDate);
DatabaseReference Name = database.getReference(PersonPhone.getText().toString() + "/Name");
Name.setValue(PersonName.getText().toString());
DatabaseReference Phone = database.getReference(PersonPhone.getText().toString() + "/Phone");
Phone.setValue(PersonPhone.getText().toString());
DatabaseReference Address = database.getReference(PersonPhone.getText().toString() + "/Address");
Address.setValue(PersonAddress.getText().toString());
if (Quantity1.getSelectedItem().toString().equals("0")) {
OrderQuantity -= 1;
}
if (Quantity2.getSelectedItem().toString().equals("0")) {
OrderQuantity -= 1;
}
if (Quantity3.getSelectedItem().toString().equals("0")) {
OrderQuantity -= 1;
}
DatabaseReference OrderQuantities = database.getReference(PersonPhone.getText().toString()+"/OrderQuantity");
OrderQuantities.setValue(OrderQuantity);
if (Quantity1.getSelectedItem().toString() != "0") {
//I want some solution HERE
}
}
});
}
@Override
public void setDate(int selectedYear, int selectedMonth, int selectedDay, int buttonNumber){
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, selectedYear);
c.set(Calendar.MONTH, selectedMonth);
c.set(Calendar.DAY_OF_MONTH, selectedDay);
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
String CurrentDateString = format.format(c.getTime());
mainDate.setText(CurrentDateString);
if (buttonNumber == 1){
itemOneDate = CurrentDateString;
}
else if (buttonNumber == 2){
itemTwoDate = CurrentDateString;
}
else if (buttonNumber == 3){
itemThreeDate = CurrentDateString;
}
}
}