gpt4 book ai didi

java - 如何在 Java 中捕获 Material 下拉菜单选择的值?

转载 作者:行者123 更新时间:2023-12-04 23:52:34 25 4
gpt4 key购买 nike

我正在使用 Material 在使用 Java 的 android studio 中设计一个带有下拉列表的表单。
我想将用户从下拉列表中所做的选择保存到一个字符串中,这样我就可以将它保存到 Firebase,但是当我尝试记录结果时,它说选择为空。
有谁知道我如何捕捉用户从这种类型的下拉菜单中选择的内容?我以前确实有一个 Spinner 可以工作,但这似乎并没有以相同的方式工作。
我的 XML 代码如下

 <com.google.android.material.textfield.TextInputLayout
android:id="@+id/cpdTypeLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="Activity Type">

<AutoCompleteTextView
android:id="@+id/cpdType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
我的 AddAdactivity.java 代码是
//CPD TYPE DROPDOWN MENU
cpdTypeLayout = findViewById(R.id.cpdTypeLayout);
cpdType = findViewById(R.id.cpdType);

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

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

cpdType.setAdapter(adapterType);

cpdType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selectedTypeResult = parent.getItemAtPosition(position).toString();
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});

Log.d("TAG", "You have selected " + selectedTypeResult);
编辑:从那以后尝试过,但没有运气。
((AutoCompleteTextView)cpdTypeLayout.getEditText()).setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
adapterType.getItem(position);
String typeItem = ((AutoCompleteTextView)cpdTypeLayout.getEditText()).getText().toString();
Log.d("TAG", "selected type is:" + typeItem);

}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});

最佳答案

获取 String你可以使用:

String selectedValue =((AutoCompleteTextView)textInputLayout.getEditText()).getText();
否则,如果您想使用监听器,可以使用以下内容:
    ((AutoCompleteTextView)textInputLayout.getEditText()).setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
String selectedValue = arrayAdapter.getItem(position);
}
});

关于java - 如何在 Java 中捕获 Material 下拉菜单选择的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63039340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com