2012-07-25 24 views
6

実行時にアンドロイドスピナー項目値を設定します。Androidスピナー設定値

final ArrayAdapter<String> calsListAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, calendarNames); 
eventCalendarList.setAdapter(calsListAdapter); 
eventCalendarList.setOnItemSelectedListener(new OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     calendarChoosen = availableCals.get(arg2); 
    } 
    public void onNothingSelected(AdapterView<?> arg0) { 
     Logger.d("Cal Choosen", "fffffffffffffff"); 
    } 
}); 

private List<AvailableCalendar> availableCals = new ArrayList<AvailableCalendar>(); 
private AvailableCalendar calendarChoosen; 

しかし、値が設定されていません。ここ

は、私がこれまで持っているものです。どのようにそれを行うことができますか?

+0

ポストいくつかのコード。あなたの説明は、問題を理解するのに十分なほど明確ではありません。 –

+0

@DavidWasserコードは次のとおりです。final ArrayAdapter calsListAdapter = new ArrayAdapter ( this、android.R.layout.simple_list_item_1、calendarNames); \t eventCalendarList.setAdapter(calsListAdapter); \t \t \t eventCalendarList \t \t \t \t \t .setOnItemSelectedListener onItemSelected(新OnItemSelectedListener(){ \t \t \t \t \t \tます。public void(AdapterView arg0は、 \t \t \t \t \t \t \t \tビューARG1、int型ARG2、長いarg3){ (722) onNothingSelected \t \t \t \t \t \t} \t \t \t \t \t \t公共ボイド(AdapterView arg0に){ \t \t \t \t \t \t \t Logger.d( "CAL選びだし"、 "fffffffffffffff")。 \t \t \t \t \t \t} \t \t \t \t \t})。 – dominic

+0

プライベートList availableCals =新しいArrayList (); プライベートAvailableCalendar calendarChoosen; – dominic

答えて

10

ここでは、List<CharSequence>などに基づいてSpinnerのアダプタを作成すると仮定します。あなたは選択のためのルックアップ、例えば行うためにそれを使用することができます:あなたのモデルは、任意の「名前」のデータが含まれていない場合

String name = model.getName(); 
int index = list.indexOf(name); 
if (index != -1) spinner.setSelection(index); 

明らかにし、スピナーで選択することは何もありませんが、あなたは、いくつかのロジックを追加することもできますそれを処理する。モデルに「名前」がある場合は、アダプターのデータ・ソースとして使用された元のリスト内の索引を見つけます。オカレンスが見つかった場合にのみ、スピナーの選択をその同じインデックスに設定します。

+0

ありがとうございました...それは魅力的に機能しました –

2

は、私はこのようなプログラムによってスピナーの値を設定します。

public class MainActivity extends Activity { 
    private SharedPreferences prefs; 
    private String prefName = "spinner_value"; 
    int id=0; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final List<String> list=new ArrayList<String>(); 
     list.add("Item 1"); 
     list.add("Item 2"); 
     list.add("Item 3"); 

     final Spinner sp=(Spinner) findViewById(R.id.spinner1); 
     ArrayAdapter<String> adp= new ArrayAdapter<String>(this, 
            android.R.layout.simple_list_item_1,list); 
     adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     sp.setAdapter(adp); 

     prefs = getSharedPreferences(prefName, MODE_PRIVATE); 
     id=prefs.getInt("last_val",0); 
     sp.setSelection(id); 

     sp.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, 
       View arg1,int pos, long arg3) { 

      prefs = getSharedPreferences(prefName, MODE_PRIVATE); 
      SharedPreferences.Editor editor = prefs.edit(); 
      //---save the values in the EditText view to preferences--- 
      editor.putInt("last_val", pos); 

      editor.commit(); 

      Toast.makeText(getBaseContext(), 
       sp.getSelectedItem().toString(), Toast.LENGTH_SHORT).show(); 
     } 
     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub     
     } 
    });    
}