我想在Android应用中从spinner中获取所选值。
我尝试跟随,因为我的微调器处于对话框弹出窗口
final Spinner problems = (Spinner) layout.input_dialog.findViewById((R.id.spinner_problems));
problems.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> adapter, View view1, int pos, long id)
{
spin_problem_val = adapter.getItemAtPosition(pos).toString();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
声明final Spinner problems = (Spinner) layout.input_dialog.findViewById((R.id.spinner_problems));
给了我错误Cannot invoke findViewById(int) on the primitive type int
为什么呢?
如果我尝试这样final Spinner problems = (Spinner) findViewById((R.id.spinner_problems));
我会得到NullPointerException
input_dialog
是我的input_dialog.xml
对话框弹出窗口,我的微调器是
<Spinner
android:id="@+id/spinner_problems"
android:entries="@array/problems"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
答案 0 :(得分:1)
layout.input_dialog
是您生成的int
中的R.java
字段。你无法调用基本类型的方法,例如int
,你需要一个对象。
由于您尝试从对话框中查找视图,请在findViewById()
对象中调用Dialog
。要获得具体帮助,请发布更多代码。
答案 1 :(得分:1)
确保在布局设置后运行此代码。 当您在加载布局之前尝试访问视图时,通常会发生错误。
在onCreateView
功能设置布局之后,请检查此代码是否正在运行。