2012-03-25 21 views
4

我有一個按鈕和一個微調(最初隱藏)。當用戶按下按鈕時,微調器會填充項目並變得可見。現在我想將OnItemSelectedListener添加到微調器。我已經嘗試了許多教程,但沒有運氣。將OnItemSelectedListener添加到Spinner中

這是我的OnCreate函數

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button load_routes = (Button)findViewById(R.id.load_routes); 
    Spinner routes = (Spinner)findViewById(R.id.routes_list); 

    load_routes.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      load_routes(v); 
     } 
    }); 

    routes.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
    { 
     public void onItemSelected(AdapterView<?> arg0, View v, int position, long id) 
     { 
      Log.v("routes", "route selected"); 
     } 

     public void onNothingSelected(AdapterView<?> arg0) 
     { 
      Log.v("routes", "nothing selected"); 
     } 
    }); 
} 

這是我load_routes功能

private void load_routes(View v) 
{ 
    Spinner routes = (Spinner)findViewById(R.id.routes_list); 
    List<String> routes_list = RouteParser.get_routes(); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, routes_list); 
    routes.setAdapter(adapter); 

    TableRow list_of_routes_row = (TableRow)findViewById(R.id.list_of_routes_row); 
    list_of_routes_row.setVisibility(View.VISIBLE); 
} 

此設置不起作用。我得到這個工作的唯一方法是當我設置我的聽衆爲routes.setOnItemSelectedListener(this)然後我執行OnItemSelectedListener幷包括功能需求。但我擁有多個spinners,需要爲不同的微調創建單獨的監聽器。任何幫助將不勝感激。謝謝!

+0

爲什麼你要在load_routes()函數中再次查看routes_list? – 2012-04-04 10:44:38

回答

1

聲明你的微調爲字段實例化偵聽器,一旦你findViewById並使用它,無論你想要的。

4
final String[] s2 = getResources().getStringArray(R.array.capteur_size); 
    final EditText ed = (EditText) findViewById(R.id.editTextCoC); 

    spinnerCoC = (Spinner) findViewById(R.id.spinnerCoC); 

    spinnerCoC.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

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

      ed.setText(s2[arg2]); 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     }  

    }); 
+0

你應該解釋你的解決方案的原因 – 2014-01-01 21:14:51

相關問題