Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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
Android 首次单击EditText中的日历图标不会显示日期选择器对话框_Android - Fatal编程技术网

Android 首次单击EditText中的日历图标不会显示日期选择器对话框

Android 首次单击EditText中的日历图标不会显示日期选择器对话框,android,Android,Hai我的应用程序中有EditText,我们可以在其中设置出生日期。在那个编辑文本中,我有一个日历图标。如果我们点击日历图标,就会打开日期选择器对话框。但在我的例子中,如果我单击日历图标,它将显示粘贴、clicpboard、选择EditText中的所有选项,而不是显示日期选择器对话框,如果我们再次单击日历图标,它将打开日期选择器对话框。如何在第一次单击“我的日历”图标时打开日期选择器对话框。我已将setFocusable和setFocusableInTouchMode设置为false,但没有任何

Hai我的应用程序中有EditText,我们可以在其中设置出生日期。在那个编辑文本中,我有一个日历图标。如果我们点击日历图标,就会打开日期选择器对话框。但在我的例子中,如果我单击日历图标,它将显示粘贴、clicpboard、选择EditText中的所有选项,而不是显示日期选择器对话框,如果我们再次单击日历图标,它将打开日期选择器对话框。如何在第一次单击“我的日历”图标时打开日期选择器对话框。我已将setFocusable和setFocusableInTouchMode设置为false,但没有任何用处。请帮我修一下

这是我在其中编辑出生日期的片段:

public class RegistrationBasicInformationFragment extends Fragment implements
        IRegistrationBasicInformationView, IRegistrationItemEventListener, View.OnFocusChangeListener {

    private TextView mRegistrationEnterYourBasicInformationLabel;
    private RelativeLayout mRegistrationBasicInformationMainLayout;
    private DsmApplication mDsmApplication;

    private RegistrationItemView mRegistrationBasicInformationItemForFirstName;
    private RegistrationItemView mRegistrationBasicInformationItemForLastName;
    private RegistrationItemView mRegistrationBasicInformationItemForDob;
    private RegistrationItemView mRegistrationBasicInformationItemForEmail;
    private RegistrationItemView mRegistrationBasicInformationItemForGender;
    private RegistrationItemView mRegistrationBasicInformationItemForNickName;
    private RegistrationItemView mRegistrationBasicInformationItemForPhoneNumber;
    private RegistrationItemView mRegistrationBasicInformationItemForPractice;
    private RegistrationItemView mRegistrationBasicInformationItemForProvider;
    private RegistrationBasicInformationController mRegistrationBasicInformationController;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.registration_basicinformation_view_v222, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mDsmApplication = (DsmApplication) getActivity().getApplication();
        loadController();
        loadView(view);
    }

    private void loadController() {
        mRegistrationBasicInformationController = new RegistrationBasicInformationController(this);
        mDsmApplication.registerController(RegistrationBasicInformationController.TAG, mRegistrationBasicInformationController);
    }

    private void loadView(View view) {
        mRegistrationBasicInformationMainLayout = (RelativeLayout) view
                .findViewById(R.id.registration_basicinformation_relativelayout_for_itself);

        mRegistrationEnterYourBasicInformationLabel = (TextView) view
                .findViewById(R.id.registration_basicinformation_textview_for_headerlabel);

        mRegistrationBasicInformationItemForFirstName = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_firstname);
        mRegistrationBasicInformationItemForFirstName.mRegistrationItemTextTypeEditText.setOnFocusChangeListener(this);
        mRegistrationBasicInformationItemForLastName = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_lastname);
        mRegistrationBasicInformationItemForLastName.mRegistrationItemTextTypeEditText.setOnFocusChangeListener(this);

        mRegistrationBasicInformationItemForDob = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_dob);

        mRegistrationBasicInformationItemForGender = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_gender);

        mRegistrationBasicInformationItemForPhoneNumber = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_phonenumber);
        mRegistrationBasicInformationItemForPhoneNumber.mRegistrationItemTextTypeEditText.setOnFocusChangeListener(this);

        mRegistrationBasicInformationItemForNickName = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_nickname);
        mRegistrationBasicInformationItemForNickName.mRegistrationItemTextTypeEditText
                .setOnFocusChangeListener(this);
        mRegistrationBasicInformationItemForNickName.mRegistrationItemTextTypeEditText
                .setOnEditorActionListener(new TextView.OnEditorActionListener() {
                    @Override
                    public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                        if (i == EditorInfo.IME_ACTION_NEXT) {
                            if (mRegistrationBasicInformationItemForDob.isEnabled() ) {
                                mRegistrationBasicInformationController.OnCalendarDateTimeIconClicked();
                                ViewUtils.hideVirturalKeyboard((EditText) textView);
                            } else {
                                mRegistrationBasicInformationItemForPhoneNumber.mRegistrationItemTextTypeEditText.requestFocus();
                                ViewUtils.showVirturalKeyboard(getActivity().getApplicationContext());
                            }
                            return true;
                        }
                        return false;
                    }
                });

        mRegistrationBasicInformationItemForEmail = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_email);
        mRegistrationBasicInformationItemForEmail.mRegistrationItemTextTypeEditText.setOnFocusChangeListener(this);

        mRegistrationBasicInformationItemForPractice = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_practice);
        mRegistrationBasicInformationItemForProvider = (RegistrationItemView) view
                .findViewById(R.id.registration_basicinformation_registrationitemview_for_provider);
    }

    @Override
    public void SetEnterYourBasicInformationLabel(String label) {
        mRegistrationEnterYourBasicInformationLabel.setText(label);
    }

    @Override
    public IRegistrationItemView CreateFirstNameItemView(String label, int type, String value,
                                                         int validationId) {
        mRegistrationBasicInformationItemForFirstName.SetEventListener(this);
        mRegistrationBasicInformationItemForFirstName.SetLabel(label);
        mRegistrationBasicInformationItemForFirstName.SetValue(value);
        mRegistrationBasicInformationItemForFirstName.SetValidationId(validationId,
                IRegistrationItemView.VALUETYPE_TEXTFIELD);
        return mRegistrationBasicInformationItemForFirstName;
    }

    @Override
    public IRegistrationItemView CreateLastNameItemView(String label, int type, String value,
                                                        int validationId) {
        mRegistrationBasicInformationItemForLastName.SetEventListener(this);
        mRegistrationBasicInformationItemForLastName.SetLabel(label);
        mRegistrationBasicInformationItemForLastName.SetValue(value);
        mRegistrationBasicInformationItemForLastName.SetValidationId(validationId, IRegistrationItemView.VALUETYPE_TEXTFIELD);
        return mRegistrationBasicInformationItemForLastName;
    }

    @Override
    public IRegistrationItemView CreateNickNameItemView(String label, int type, String value, int validationId) {
        mRegistrationBasicInformationItemForNickName.SetEventListener(this);
        mRegistrationBasicInformationItemForNickName.SetLabel(label);
        mRegistrationBasicInformationItemForNickName.SetValue(value);
        mRegistrationBasicInformationItemForNickName.SetValidationId(validationId, IRegistrationItemView.VALUETYPE_TEXTFIELD);
        return mRegistrationBasicInformationItemForNickName;
    }

    @Override
    public IRegistrationItemView CreatePracticeItemView(String label, int type, IStringList
            valuesList, String defaultValue, int validationId) {
        mRegistrationBasicInformationItemForPractice.SetEventListener(this);
        mRegistrationBasicInformationItemForPractice.SetLabel(label);
        mRegistrationBasicInformationItemForPractice.SetValueList(type, valuesList);
        mRegistrationBasicInformationItemForPractice.SetValidationId(validationId,
                IRegistrationItemView.VALUETYPE_LIST);
        return mRegistrationBasicInformationItemForPractice;
    }

    @Override
    public IRegistrationItemView CreateProviderItemView(String label, int type, IStringList
            valuesList, String defaultValue, int validationId) {
        mRegistrationBasicInformationItemForProvider.SetEventListener(this);
        mRegistrationBasicInformationItemForProvider.SetLabel(label);
        mRegistrationBasicInformationItemForProvider.SetValueList(type, valuesList);
        mRegistrationBasicInformationItemForProvider.SetValidationId(validationId,
                IRegistrationItemView.VALUETYPE_LIST);
        return mRegistrationBasicInformationItemForProvider;
    }

    @Override
    public void ShowPracticeItemView() {
        mRegistrationBasicInformationItemForPractice.setVisibility(View.VISIBLE);
    }

    @Override
    public void ShowProviderItemView() {
        mRegistrationBasicInformationItemForProvider.setVisibility(View.VISIBLE);
    }

    @Override
    public void RefreshScreen() {
        // NA
    }

    @Override
    public void SetGender(int isMale) {
        mRegistrationBasicInformationItemForGender.SetValueForSwitch(isMale);
    }

    @Override
    public IRegistrationItemView CreateDobItemView(String label, int type, String value,
                                                   int validationId) {
        mRegistrationBasicInformationItemForDob.SetEventListener(this);
        mRegistrationBasicInformationItemForDob.SetLabel(label);
        mRegistrationBasicInformationItemForDob.SetValidationId(validationId, IRegistrationItemView.VALUETYPE_TEXTFIELD);
        mRegistrationBasicInformationItemForDob.SetValue(value);
        return mRegistrationBasicInformationItemForDob;
    }

    @Override
    public IRegistrationItemView CreatePhoneNumberItemView(String label, int type, String value, int validationId) {
        mRegistrationBasicInformationItemForPhoneNumber.SetEventListener(this);
        mRegistrationBasicInformationItemForPhoneNumber.SetLabel(label);
        mRegistrationBasicInformationItemForPhoneNumber.SetValue(value);
        mRegistrationBasicInformationItemForPhoneNumber.SetValidationId(validationId, IRegistrationItemView.VALUETYPE_TEXTFIELD);
        return mRegistrationBasicInformationItemForPhoneNumber;
    }

    @Override
    public IRegistrationItemView CreateEmailItemView(String label, int type, String value,
                                                     int validationId) {
        mRegistrationBasicInformationItemForEmail.SetEventListener(this);
        mRegistrationBasicInformationItemForEmail.SetLabel(label);
        mRegistrationBasicInformationItemForEmail.SetValue(value);
        mRegistrationBasicInformationItemForEmail.SetValidationId(validationId,
                IRegistrationItemView.VALUETYPE_TEXTFIELD);
        mRegistrationBasicInformationItemForEmail.mRegistrationItemTextTypeEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
        return mRegistrationBasicInformationItemForEmail;
    }

    @Override
    public IRegistrationItemView CreateGenderItemView(String label, int type,
                                                      IStringList valueList, int validationId, int GenderType) {
        mRegistrationBasicInformationItemForGender.SetEventListener(this);
        mRegistrationBasicInformationItemForGender.SetLabel(label);
        mRegistrationBasicInformationItemForGender.SetValidationId(validationId,
                IRegistrationItemView.VALUETYPE_RADIO_BUTTON);
        mRegistrationBasicInformationItemForGender.SetValueList(type, valueList);
        mRegistrationBasicInformationItemForGender.clearRadioButtons();
        mRegistrationBasicInformationItemForGender.SetValueForSwitch(GenderType);
        return mRegistrationBasicInformationItemForGender;
    }

    @Override
    public void OnErrorIconClick(int validationId) {
        //NA
    }

    @Override
    public void OnCalendarIconClick() {
        mRegistrationBasicInformationController.OnCalendarDateTimeIconClicked();
    }

    @Override
    public void OnSwitchButtonClick(int validationId, boolean isChecked) {
        //NA
    }

    @Override
    public void OnRegistrationItemEditCompleted(String content, int validationId) {
        mRegistrationBasicInformationController.OnRegistrationItemEditCompleted(validationId, content);
    }

    @Override
    public void OnSpinnerItemSelected(int validationId, int position) {
        switch (validationId) {
            case RegistrationValidator.VALIDATE_PRACTICE:
                mRegistrationBasicInformationController.OnPracticeItemSelected(position);
                break;

            case RegistrationValidator.VALIDATE_PROVIDER:
                mRegistrationBasicInformationController.OnProviderItemSelected(position);
                break;
        }
    }

    @Override
    public Presenter GetPresenter() {
        return mRegistrationBasicInformationController;
    }

    @Override
    public String GetClassName() {
        return getClass().getSimpleName();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        OnDestroy();
    }

    @Override
    public void OnDestroy() {
        mRegistrationEnterYourBasicInformationLabel = null;
        if (mRegistrationBasicInformationItemForFirstName != null) {
            mRegistrationBasicInformationItemForFirstName.OnDestroy();
            mRegistrationBasicInformationItemForFirstName = null;
        }

        if (mRegistrationBasicInformationItemForLastName != null) {
            mRegistrationBasicInformationItemForLastName.OnDestroy();
            mRegistrationBasicInformationItemForLastName = null;
        }

        if (mRegistrationBasicInformationItemForNickName != null) {
            mRegistrationBasicInformationItemForNickName.OnDestroy();
            mRegistrationBasicInformationItemForNickName = null;
        }

        if (mRegistrationBasicInformationItemForPhoneNumber != null) {
            mRegistrationBasicInformationItemForPhoneNumber.OnDestroy();
            mRegistrationBasicInformationItemForPhoneNumber = null;
        }

        if (mRegistrationBasicInformationItemForDob != null) {
            mRegistrationBasicInformationItemForDob.OnDestroy();
            mRegistrationBasicInformationItemForDob = null;
        }

        if (mRegistrationBasicInformationItemForEmail != null) {
            mRegistrationBasicInformationItemForEmail.OnDestroy();
            mRegistrationBasicInformationItemForEmail = null;
        }

        if (mRegistrationBasicInformationItemForGender != null) {
            mRegistrationBasicInformationItemForGender.OnDestroy();
            mRegistrationBasicInformationItemForGender = null;
        }

        if (mRegistrationBasicInformationItemForPractice != null) {
            mRegistrationBasicInformationItemForPractice.OnDestroy();
            mRegistrationBasicInformationItemForPractice = null;
        }

        if (mRegistrationBasicInformationItemForProvider != null) {
            mRegistrationBasicInformationItemForProvider.OnDestroy();
            mRegistrationBasicInformationItemForProvider = null;
        }

        ViewUtils.UnbindReferences(mRegistrationBasicInformationMainLayout);
        ViewUtils.UnbindReferences(getView());
    }

    @Override
    public void onFocusChange(View view, boolean hasFocus) {
        if (!hasFocus) {
            CustomTextInputEditText editText = (CustomTextInputEditText) view;

            mRegistrationBasicInformationController.OnRegistrationItemEditCompleted((int) view.getTag()
                    , editText.getText().toString());
        }
    }
}

请分享密码。仅凭描述是很难评估的。@Subechhu Khanal Mregistration BasicInformation ItemforDob用于日历。RegistrationItemView是我的EditText类,我在其中到处重复使用。我试图发布RegistrationItemView的代码,但因为它有很多行代码,所以不允许我发布相同的代码。如果ypu将给你的电子邮件id,我可以发送它。记住,我只在android 7.0操作系统中面临这个问题。请分享代码。仅凭描述是很难评估的。@Subechhu Khanal Mregistration BasicInformation ItemforDob用于日历。RegistrationItemView是我的EditText类,我在其中到处重复使用。我试图发布RegistrationItemView的代码,但因为它有很多行代码,所以不允许我发布相同的代码。如果ypu将给你的电子邮件id,我可以发送它。记住,我只在android 7.0操作系统中面临这个问题。