【问题标题】:How to make Material Exposed Drop Down List required field in Java如何在 Java 中制作 Material Exposed Drop Down List 必填字段
【发布时间】:2020-07-30 10:20:47
【问题描述】:

我正在使用 Material Exposed Drop Down List 将信息添加到我的 Firebase 数据库中,我需要在保存信息之前将下拉列表设置为必填字段。目前信息将保存,但该字段保存为空,这使我的添加在不同的活动中崩溃。

我目前使用的代码将下拉菜单视为 EditText,但这不起作用。

我正在定义下拉菜单并像这样捕获用户输入(如果有的话):

 //CPD TYPE DROPDOWN MENU
    cpdTypeLayout = findViewById(R.id.cpdTypeLayout);
    cpdType = findViewById(R.id.cpdType);

    final String[] type = new String[]{
            "Formal Education Completed", "Other Completed", "Professional Activities", "Self-Directed Learning", "Work-Based Learning"
    };

    final ArrayAdapter<String> adapterType = new ArrayAdapter<>(
            AddActivity.this,
            R.layout.dropdown_item,
            type
    );

    cpdType.setAdapter(adapterType);

    //TO CAPTURE USER SELECTION FROM DROP DOWN LIST
    ((AutoCompleteTextView)cpdTypeLayout.getEditText()).setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            adapterType.getItem(position);
            selectedType = ((AutoCompleteTextView)cpdTypeLayout.getEditText()).getText().toString();
            Log.d("TAG", "selected type is: " + selectedType);
        }
    });

然后我在添加到 Firebase 之前使用此代码检查是否有任何内容为空,但检查不会停止进行保存。

if (selectedType.isEmpty() || selectedHours.isEmpty() || selectedMins.isEmpty()) {
                            Toast.makeText(AddActivity.this, "Can not save activity with empty fields", Toast.LENGTH_SHORT).show();
                            return;
                        }

我也尝试过使用selectedType == null,但这也不起作用。

我不确定是否需要在我的 XML 文件或 Java 文件中添加一些内容以防止这种情况发生

【问题讨论】:

    标签: java android drop-down-menu material-design


    【解决方案1】:

    我设法通过在我的保存按钮单击中添加以下内容自行解决了这个问题:

    fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (selectedType.trim().length() != 0 && selectedHours.trim().length() != 0 && selectedMins.trim().length() != 0){
                        uploadToFirebase();
                    } else {
                        if (selectedType.trim().length() == 0) {
                            cpdTypeLayout.setError("Please select Activity Type");
                        }
                        if (selectedHours.trim().length() == 0) {
                            cpdHoursLayout.setError("Please select Hours");
                        }
                        if (selectedMins.trim().length() == 0){
                            cpdMinsLayout.setError("Please select Minutes");
                        }
                    }
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      相关资源
      最近更新 更多