0

这是我的代码。如果我单击“14”,则微调器中的默认值应设置为 14,如果我更改“20”或某些值(如“16”),则应将其设置为微调器中的默认值。

所以选择的值必须显示在 Spinner 中。

 Spinner font=new Spinner(con);
 option= new String[] {"Select","14","16","18","20"};
 ArrayAdapter<String> adapter= new ArrayAdapter<String>(con,android.R.layout.simple_spinner_dropdown_item,option);
 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 font.setOnItemSelectedListener(new OnItemSelectedListener() {

 public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long id) {
 if(!(arg0).getSelectedItem().toString().trim().equalsIgnoreCase("Select"))
 size=Float.parseFloat((option[(arg0).getSelectedItemPosition()]).trim());
       }
 public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
 font.setAdapter(adapter);
 int i;
 for( i=0;i<option.length;i++){

 if(option[i].toString().equalsIgnoreCase("14")){
  }
 else  {
 font.setSelection(i);
        }

     }
4

1 回答 1

0

当您转到下一个屏幕并返回时,默认情况下它会自动显示最后选择的值(如果您的 for 循环代码在此处不存在)。如果您从微调器屏幕转到上一个屏幕并返回,则将再次创建微调器并再次设置适配器。所以不能设置最后选择的值。如果这仍然是您的要求,则在选择时将值保存到共享首选项。然后在设置适配器后,如果已经存在,您将获得该值。在您的代码中,不是使用“14”检查相等条件,而是使用共享首选项保存值检查它并在 if 循环中调用 setSelection(i)

于 2012-10-08T11:39:44.070 回答