【发布时间】: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