2012-03-25 2 views
4

단추와 회 전자 (원래 숨김)가 있습니다. 사용자가 버튼을 누르면 회 전자에 항목이 채워지고 표시됩니다. 이제는 OnItemSelectedListener를 회 전자에 추가하고 싶습니다. 나는 운이없는 많은 튜토리얼을 시도했다.Spinner에 OnItemSelectedListener 추가

이이 내 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); 
} 

기능입니다

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"); 
     } 
    }); 
} 

내에서 OnCreate 기능입니다. 내가 작동하도록하는 유일한 방법은 청취자를 routes.setOnItemSelectedListener(this)으로 설정할 때입니다. 그런 다음 OnItemSelectedListener을 구현하고 필요한 기능을 포함시킵니다. 하지만 여러 회 전자가 있고 서로 다른 회 전자에 대해 별도의 수신기를 만들어야합니다. 어떤 도움을 주시면 감사하겠습니다. 감사!

+0

왜 load_routes() 함수에서 routes_list를 다시 보았습니까? –

답변

1

Spinner를 필드로 선언하면 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

이 솔루션에 대한 이유를 설명해야합니다 –

관련 문제