我是Android的新手,我正在努力解决这个问题:我想让一个弹出式微调器填充来自我的一个阵列的元素。
主要活动中的代码是:
AlertDialog.Builder adb2 = new AlertDialog.Builder(this);
LayoutInflater adbInflater2 = LayoutInflater.from(this);
View SpinnerLayout = adbInflater.inflate(R.layout.spinner, null);
adb2.setView(SpinnerLayout);
adb2.setTitle("Select destination");
Spinner s = (Spinner) findViewById(R.id.spinner2);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, ListPointName);
s.setAdapter(adapter);
adb2.show();
我的spinner.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
当我运行此代码时,我有一个致命的例外:
01-05 17:45:07.273: E/AndroidRuntime(8093): FATAL EXCEPTION: main
(但是如果我在没有ArrayAdapter部分的情况下运行它,我的弹出式微调器是空的,所以问题应该是当我尝试填充微调器时... 我检查过,我的列表ListPointName不为空。)
有人可以解释一下我做错了什么吗?
非常感谢
答案 0 :(得分:2)
而不是这个 -
Spinner s = (Spinner) findViewById(R.id.spinner2);
这样做 -
Spinner s = (Spinner) SpinnerLayout.findViewById(R.id.spinner2);
答案 1 :(得分:1)
您正在尝试从主布局中查找视图,但您的微调器位于spinnerLayout中,所以
将Spinner s = (Spinner) findViewById(R.id.spinner2);
更改为Spinner s = (Spinner) SpinnerLayout.findViewById(R.id.spinner2);