Вопрос по spinner, android, android-widget, android-layout – Android-несколько спиннеров

9

У меня есть этот код:

package lijap.app.starcraft2counters;

import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class Settings extends Activity implements OnItemSelectedListener {
Spinner answertime;
Spinner gametime;
Spinner missesallowed;

String[] answerseconds = { "Unlimited", "1 second", "2 seconds", "3 seconds",
        "4 seconds", " 5 seconds" };

String[] gameminutes = { "Unlimited", "1 minute", "2 minutes", "3 minutes",
        "4 minutes", " 5 minutes" };

String[] numberofmisses = { "Unlimited", "5", "10", "15",
        "20", "25" };

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(Settings.this,
            android.R.layout.simple_spinner_item, gameminutes);

    answertime = (Spinner) findViewById(R.id.s_answertime);
    answertime.setAdapter(adapter);
    answertime.setOnItemSelectedListener(this);
}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub


}

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

}
}

Я сбиваюсь с толку, пытаясь вставить более одного счетчика. Я разделяю адаптер массива, или я создаю новый для каждого? Что насчет onItemSelected? Как видно из моих строк наверху, я хочу три блесны. Как бы я это сделал?

Я новичок в Android, как вы можете сказать. Вся помощь приветствуется - Lijap

Ваш Ответ

2   ответа
4

yearDropdown.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
    {
        selectedyear = parentView.getSelectedItemPosition();
        drpyear      = yearDropdown.getSelectedItem().toString();

        //your code here

    }

    public void onNothingSelected(AdapterView<?> parentView) 
    {
        selectedyear = 0;
        //return;
    }
});

monthDropdown.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
    {
        //your code here


    }

    public void onNothingSelected(AdapterView<?> parentView) 
    {
        selectedmonth = 0;
        //return;
    }
});

dayDropdown.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) 
    {
        //your code here

    }

    public void onNothingSelected(AdapterView<?> parentView) 
    {
        selectedday = 0;
    }
});

вам нужно создать каждый адаптер для каждого счетчика.

   adapterYear = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item);
   yearDropdown.setAdapter(adapterYear);

   adapterMonth = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item);
   monthDropdown.setAdapter(adapterMonth);

   adapterDays = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item);
   dayDropdown.setAdapter(adapterDays);
14

SpinnerЕсли они адаптировали ту же информацию. Очевидно, что каждый из ваших адаптеров должен адаптировать свой наборStringс, так что вам нужно создатьArrayAdapter для каждогоSpinner.

ОдинOnItemSelectedListener будет работать на 3Spinners (пока вы их установите). Ты можешь позвонитьgetId() наAdapterView<?> передан в качестве аргумента, чтобы узнать, какиеSpinner поднял событие.

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    switch(arg0.getId()){
        case R.id.s_answertime:
            break;
        case ...
    }
}
вы спасли мой день, я делал view.getId () и ломал голову, почему он не работал
+1 У меня тоже нормально работает ...
@Lijap: см. Редактировать.
Другой по пункту, выбранный также? Lijap

Похожие вопросы