Несколько счетчиков Onitemselected Результат перезаписан - PullRequest
0 голосов
/ 02 июля 2019

У меня есть два счетчика в моем коде. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу различить результаты двух счетчиков. Я знаю, что мы можем использовать идентификаторы, но я не могу это сделать. Вот мой код

public class AddProduct extends AppCompatActivity implements AdapterView.OnItemSelectedListener{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_product);
    Spinner spinner = findViewById(R.id.spinner1);

    SpinnerAdapter adap = new ArrayAdapter<String>(this, R.layout.spinner, new String[]{"Men", "Women", "Kids"});
    spinner.setAdapter(adap);
    spinner.setTag(1);

    spinner.setOnItemSelectedListener(this);

    Spinner spinner2 = findViewById(R.id.spinner2);
    spinner2.setTag(2);
    SpinnerAdapter adap2 = new ArrayAdapter<String>(this, 
    R.layout.spinner, new String[]{"Casual", "Formals", "Ethinic"});
    spinner2.setAdapter(adap2);

    spinner2.setOnItemSelectedListener(this);


}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    String text = parent.getItemAtPosition(position).toString();

    Toast.makeText(parent.getContext(), text , Toast.LENGTH_SHORT).show();
}

Ответы [ 2 ]

3 голосов
/ 02 июля 2019

Изменить onItemSelected метод

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
 String text = "";
 if(parent.getId() == R.id.spinner1) {
    text = "spinner1 " + parent.getItemAtPosition(position).toString();
 } else if(parent.getId() == R.id.spinner2) {
    text = "spinner2 " + parent.getItemAtPosition(position).toString();
 } 
    Toast.makeText(parent.getContext(), text , Toast.LENGTH_SHORT).show();
}
0 голосов
/ 02 июля 2019

дифференцировать результаты:

Spinner s1, s2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_product);

        s1= findViewById(R.id.spinner1);

        SpinnerAdapter adap = new ArrayAdapter<String>(this, R.layout.spinner, new String[]{"Men", "Women", "Kids"});
        s1.setAdapter(adap);
        s1.setTag(1);



        s2= findViewById(R.id.spinner2);
        s2.setTag(2);
        SpinnerAdapter adap2 = new ArrayAdapter<String>(this,
                R.layout.spinner, new String[]{"Casual", "Formals", "Ethinic"});
        s2.setAdapter(adap2);

        s1.setOnItemSelectedListener(this);
        s2.setOnItemSelectedListener(this);

    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position,
    long id) {
        // TODO Auto-generated method stub

        Spinner spinner = (Spinner) parent;
        if(spinner.getId() == R.id.spinner1)
        {

            String sp1= String.valueOf(s1.getSelectedItem());

            // Toast.makeText(this, sp1, Toast.LENGTH_SHORT).show();

            if(sp1.contentEquals("Men")) {
                //Do Something 
            }
            if(sp1.contentEquals("Women")) {
                //Do Something 
            }
            if(sp1.contentEquals("Kids")) {
                //Do Something 
            }


        } else if(spinner.getId() == R.id.spinner2)
        {

            String sp2= String.valueOf(s2.getSelectedItem());
            // Toast.makeText(this, sp2, Toast.LENGTH_SHORT).show();

            if(sp2.contentEquals("Casual")) {
                //Do Something 
            }
            if(sp2.contentEquals("Formals")) {
                //Do Something 
            }
            if(sp2.contentEquals("Ethinic")) {
                //Do Something 
            }
        }
    }
...