Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android studio中不使用DatePickeView读取选定日期_Java_Android_Class_Android Dialogfragment - Fatal编程技术网

Java 在android studio中不使用DatePickeView读取选定日期

Java 在android studio中不使用DatePickeView读取选定日期,java,android,class,android-dialogfragment,Java,Android,Class,Android Dialogfragment,我是Parvanshu Sharma,我是编程初学者,我正在制作一个应用程序,其中 我已经这样做了,点击按钮时会出现一个日期选择器对话框,按钮文本将被设置为用户选择的,目前有3个按钮用于此,我甚至有一个实时数据库用于在Firebase上上载此日期,但现在我在获取每个唯一日期并上载时遇到问题,我无法获取所选日期 就像我的每个问题一样- MainActivity.java(太大了,所以我没有显示导入) 尝试使用接口。你将在你的主要活动中有所有3个日期,现在你可以用它们做任何事情 public cla

我是Parvanshu Sharma,我是编程初学者,我正在制作一个应用程序,其中 我已经这样做了,点击按钮时会出现一个日期选择器对话框,按钮文本将被设置为用户选择的,目前有3个按钮用于此,我甚至有一个实时数据库用于在Firebase上上载此日期,但现在我在获取每个唯一日期并上载时遇到问题,我无法获取所选日期

就像我的每个问题一样-

MainActivity.java(太大了,所以我没有显示导入)


尝试使用接口。你将在你的主要活动中有所有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;
            }
        }
}