Передача выбранного значения счетчика в другое значение

Как только значение выбрано из счетчика, я хочу, чтобы другой список значений заполнил счетчик из сделанного выбора. Например: когда пользователь щелкает счетчик, появляются значения «Домашняя команда, Домашние сабвуферы, Домашние другие». Пользователь щелкает один из них, а затем игроки, связанные с этим выбором, заполняют счетчик. Ниже приведен код для заполненных исходных счетчиков.

public class ExampleMain extends Activity {

        JSONArray jsonArray = null;
        JSONArray str_login = null;
        public String kode;
        public String Team_Name;
        public String Home_team;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.main);  

            JSONParser jParser = new JSONParser();
            String link_url = "http://10.0.2.2/NPD/P_name.php";
            JSONObject json = jParser.FunctionParser(link_url);
            Spinner d11 = (Spinner)findViewById(R.id.doubles11);
            Spinner d12 = (Spinner)findViewById(R.id.doubles12);
            Spinner d21 = (Spinner)findViewById(R.id.doubles21);
            Spinner d22 = (Spinner)findViewById(R.id.doubles22);
            Spinner d31 = (Spinner)findViewById(R.id.doubles31);
            Spinner d32 = (Spinner)findViewById(R.id.doubles32);


                try {
                        jsonArray = json.getJSONArray("team");
                        final String[] items = new String[jsonArray.length()];
                        for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);           
                        items[i]=jsonObject.getString("P_name");
                        }

           ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, 
                   android.R.layout.simple_spinner_item, items);      
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           d11.setAdapter(adapter);


           adapter = new ArrayAdapter<String>(
                    this,android.R.layout.simple_spinner_item, items);
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           d12.setAdapter(adapter);

           adapter = new ArrayAdapter<String>(
                   this,android.R.layout.simple_spinner_item, items);
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           d21.setAdapter(adapter);

           adapter = new ArrayAdapter<String>(
                   this,android.R.layout.simple_spinner_item, items);
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           d22.setAdapter(adapter);

           adapter = new ArrayAdapter<String>(
                   this,android.R.layout.simple_spinner_item, items);
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           d31.setAdapter(adapter);

           adapter = new ArrayAdapter<String>(
                   this,android.R.layout.simple_spinner_item, items);
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           d32.setAdapter(adapter);




                } catch (JSONException e) {
                        e.printStackTrace();
                }

Спасибо.


person RunningWalks    schedule 12.06.2013    source источник
comment
Чего вы достигли до сих пор?   -  person Tiago Sippert    schedule 12.06.2013
comment
Вы должны принять ответ. Не будь одним из этих парней.   -  person Jorge Fuentes González    schedule 26.06.2013


Ответы (1)


Вам необходимо использовать OnItemSelectedListener

d11.setOnItemSelectedListener(this);

    @Override
    public void onItemSelected(AdapterView<?> spinner, View view, int position,long arg3)
    {
         item = spinner.getItemAtPosition(position).toString();
    }

     public void onNothingSelected(AdapterView parent) {
    // Do nothing.
    }

Теперь у вас будет свое значение, и вы можете использовать его везде, где вам нужно заполнить другой Spinners. Сделайте item в этом примере переменной-членом, чтобы вы могли использовать ее где угодно в этом Activity. Вам также нужно будет добавить implements OnItemSelectedListener к вашему определению класса

public class ExampleMain extends Activity implements OnItemSelectedListener{

Кроме того, вы много раз инициализируете adapter одними и теми же значениями, на которые он похож. Просто инициализируйте его один раз, а затем установите Adapters на Spinners.

person codeMagic    schedule 12.06.2013
comment
Я ищу новые данные для заполнения того же счетчика. По сути, после щелчка по первому значению эти данные очищаются, и игроки, связанные с переменной clicked, теперь заполняют счетчик. Можно ли это сделать? - person RunningWalks; 12.06.2013
comment
Да, просто измените адаптер, чтобы использовать другой список при выборе элемента. - person codeMagic; 12.06.2013
comment
Либо смените адаптер и вызовите setAdapter(yourNewAdapter), либо измените значения в списке и вызовите notifyDataSetChanged() на старом adapter - person codeMagic; 12.06.2013