Java android:将微调器绑定到自定义列表
我试图显示一个Java android:将微调器绑定到自定义列表,java,android,android-spinner,Java,Android,Android Spinner,我试图显示一个微调器列表供用户选择,然后将选择绑定到另一个数组。将保存用户选择的值surfaceCode,以供以后使用。SpinnerarrayR.array.surface\u选项和要绑定的数组R.array.surface\u code对齐并以xml格式保存 这是我的密码 spinnerSurface = (Spinner) findViewById(R.id.spinnerSurface); ArrayAdapter<CharSequence> adapterSurface =
微调器
列表供用户选择,然后将选择绑定到另一个数组
。将保存用户选择的值surfaceCode
,以供以后使用。Spinner
arrayR.array.surface\u选项
和要绑定的数组R.array.surface\u code
对齐并以xml格式保存
这是我的密码
spinnerSurface = (Spinner) findViewById(R.id.spinnerSurface);
ArrayAdapter<CharSequence> adapterSurface = ArrayAdapter.createFromResource(this, R.array.surface_option, android.R.layout.simple_spinner_item);
adapterSurface.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerSurface.setAdapter(adapterSurface);
spinnerSurface.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
TextView tx = (TextView)v;
Log.i("\n\nid",String.valueOf(tx.getText()));
String surfaceCode = getResources().getStringArray(R.array.surface_code)[spinnerSurface.getSelectedItemPosition()];
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
Log.d("code outside", surfaceCode.trim() + " is equal to SW: " + surfaceCode.trim().equals("SW"));
spinnerSurface=(Spinner)findViewById(R.id.spinnerSurface);
ArrayAdapter adapterSurface=ArrayAdapter.createFromResource(这是R.array.surface\u选项,android.R.layout.simple\u微调器\u项);
adapterSurface.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头表面。设置适配器(适配器表面);
spinnerSurface.setOnItemSelectedListener(新Spinner.OnItemSelectedListener(){
已选择公共id(AdapterView父视图、视图v、整数位置、长id){
TextView tx=(TextView)v;
Log.i(“\n\nid”,String.valueOf(tx.getText());
字符串surfaceCode=getResources().getStringArray(R.array.surface_代码)[spinnerSurface.getSelectedItemPosition()];
}
未选择公共无效(AdapterView arg0){
}
});
Log.d(“外部代码”,surfaceCode.trim()+”等于SW:“+surfaceCode.trim().equals”(“SW”);
surfaceCode
显示为错误进程意外停止
,可能是因为它返回null
。我的代码有什么问题?由于匿名侦听器中的代码仅在进行选择时才执行,因此最后一行代码中的surfaceCode可以为null
这将导致最后一行出现NullPointerException
即使调用了onItemSelected(),它也不会设置成员surfaceCode,因为您已经声明了一个与它同名的局部变量
您应该删除surfaceCode之前的“字符串”,并将log语句放入onItemSelected()中。surfaceCode在最后一行代码中可以为null,因为匿名侦听器中的代码仅在进行选择时执行 这将导致最后一行出现NullPointerException 即使调用了onItemSelected(),它也不会设置成员surfaceCode,因为您已经声明了一个与它同名的局部变量
您应该删除surfaceCode之前的“字符串”,并将log语句放在onItemSelected()中。logcat怎么说?抛出了什么异常?请将Stacktrace添加到您的问题中。logcat怎么说?抛出了什么异常?请将Stacktrace添加到您的问题中。