我有一个用XML创建的自定义弹出窗口,在该弹出窗口中有一个微调器,当点击它时,它应该具有一个下拉列表。该列表由arraylist动态填充。当我在应用程序中轻触微调器时,它根本不会显示列表,而轻触基本上不执行任何操作,只是突出显示微调器栏。
但是,如果我从预先创建的strings.xml数组中填充微调器,它就可以正常工作。问题是我需要动态更改列表,而无法使用预先创建的数组来做到这一点。
我浏览了很多关于类似问题的stackoverflow帖子,从本质上说,我尝试了所有遇到的但没有运气的建议。我还按照许多不同的教程讲解如何正确地创建微调器,并且每次发生相同的事情。
这是自定义弹出窗口的XML和用于初始化微调器的java活动代码。
布局xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_height="200dp"
android:background="#474747"
android:padding="5dp"
android:layout_gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="@color/white"
android:text="Enter Current Floor #"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"/>
</LinearLayout>
<LinearLayout
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/btn_dropdown"
android:spinnerMode="dropdown"/>
</LinearLayout>
<Button
android:id="@+id/btnGo"
android:onClick="goClicked"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GO"
android:layout_marginTop="25dp"
android:layout_gravity="center_horizontal"
android:textColor="@color/white"
android:backgroundTint="#14B5DB"/>
</LinearLayout>
这是活动代码:
Dialog myDialog;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myDialog = new Dialog(this);
myDialog.setContentView(R.layout.custompopup);
addItemsOnSpinner();
}
public void addItemsOnSpinner() {
Spinner dropdown = (Spinner)
myDialog.findViewById(R.id.spinner);
List<String> list = new ArrayList<String>();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> .
(myDialog.getContext(),
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdown.setAdapter(dataAdapter);
}
没有错误消息或任何东西,只是在轻击微调器时不显示列表。很抱歉格式不正确,这基本上是我第一次在此处发布代码。非常感谢您的帮助,因为我已经尝试解决了一段时间,但似乎无法找到解决问题的方法。