0

これは私のコードです。「14」をクリックすると、スピナーでデフォルト値として14に設定され、「20」または「16」などの値を変更すると、スピナーでデフォルト値として設定されます。

そのため、選択した値をスピナーに表示する必要があります。

 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 に答える