【发布时间】:2010-09-09 04:08:22
【问题描述】:
我在尝试在对话框中创建 Spinner 时遇到 NullPointerException,并且似乎无法调试它,因为代码看起来很可靠。想知道其他人是否有任何想法。非常感谢任何帮助。
protected Dialog onCreateDialog(int id)
{
Dialog dialog;
switch(id) {
case DIALOG_SEND_PM:
Spinner spinner = (Spinner)findViewById(R.id.pm_server);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.server_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
dialog = new Dialog(PM.this);
dialog.setContentView(R.layout.send_pm_dialog);
dialog.setTitle(R.string.send_pm);
pmMessage = (EditText) dialog.findViewById(R.id.send_pm_box);
Button sendPm = (Button) dialog.findViewById(R.id.send_pm_button);
sendPm.setOnClickListener(PM.this);
break;
default:
dialog = null;
}
我在 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);我将上下文更改为 MyClass.this 并将异常移至下一行,这让我感到困惑。我想知道它是否是具有 null 值的适配器,但我在不在对话框中时以与以前相同的方式调用所有内容。
相关的 XML 数据:
<LinearLayout>
<TextView/>
<LinearLayout>
<TextView/>
<EditText/>
<TextView/>
<Spinner
android:id="@+id/pm_server"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:background="@drawable/yblueborder"
android:textColor="#ABABAB"/>
</LinearLayout>
<Button/>
</LinearLayout>
编辑了其余的数据,以免占用太多空间。
【问题讨论】:
-
您的微调器是在活动布局还是对话框布局中定义的?
-
在对话框的布局中定义。我会发布 xml。