Как передать данные из Spinner в другую деятельность? - PullRequest
0 голосов
/ 07 ноября 2019

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

Мои оба счетчика работаютправильно.

Код для прядильщика

    Spinner spinner = findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = 
    ArrayAdapter.createFromResource(this,
    R.array.numbers, android.R.layout.simple_spinner_item);      
    adapter.setDropDownViewResource  
    (android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);

    Spinner spinner2 = findViewById(R.id.spinner2);
    ArrayAdapter<CharSequence> adapter1 = 
    ArrayAdapter.createFromResource(this,
    R.array.drinks, android.R.layout.simple_spinner_item);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(adapter1);
    spinner2.setOnItemSelectedListener(this);



    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int 
    position, long l) {
    String text = parent.getItemAtPosition(position).toString();
    Toast.makeText(parent.getContext(), text, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {

    }

Код для намерения

    Button enviar = findViewById(R.id.enviar);
    enviar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent resumenPedido = new Intent(MainActivity.this, Resumen.class);
            startActivityForResult(resumenPedido, 1);
        }
    });

Ответы [ 3 ]

1 голос
/ 07 ноября 2019

вы должны использовать метод Intent.putExtra (). Пожалуйста, проверьте следующее и используйте соответственно.

Вот как вы можете получить выбранные значения из счетчика:

CharSequence spinner1SelectedData  = (CharSequence) spinner.getSelectedItem();
CharSequence spinner2SelectedData  = (CharSequence) spinner2.getSelectedItem();

И затем слушатель onClick заменит его следующим:

Intent resumenPedido = new Intent(MainActivity.this, Resumen.class);
resumePedido.putExtra("data_spinner_1", spinner1SelectedData.toString());  
resumePedido.putExtra("data_spinner_2", spinner2SelectedData.toString());
startActivity(mIntent);

Вам не нужно использовать startActivityForResult, если вы не хотите обратного вызова для исходного действия.

Во втором упражнении вы можете получить данные следующим образом:

  if (getIntent() != null){
      String spinner1Value = getIntent().getStringExtra("data_spinner_1");
      String spinner2Value = getIntent().getStringExtra("data_spinner_2");
  }
0 голосов
/ 07 ноября 2019

Прежде всего

вам нужно дифференцировать счетчик 1 onItemSelectedListner с счетчиком 2

Второе

для хранения пользователявыбранное значение из спиннера принимает две переменные

string_spinner1 и string_spinner2 и сохраняет его внутри onItemSelectedListner

string_spinner1 = parent.getItemAtPosition(position).toString()  //FOR SPINNER 1 LISTENER
string_spinner2 = parent.getItemAtPosition(position).toString() //FOR SPINNER 2 LISTENER

Third Thing передает это значение в вашем намерении, например>> 1018 *

Intent resumenPedido = new Intent(MainActivity.this, Resumen.class);
resumenPedido.putExtra('spinner1_data',string_spinner1);
resumenPedido.putExtra('spinner2_data',string_spinner2);
startActivity(resumenPedido);
0 голосов
/ 07 ноября 2019

используйте EXTRA для намерения
ваш onClick должен выглядеть следующим образом

public void onClick(View view) {
        Intent resumenPedido = new Intent(MainActivity.this, Resumen.class);
        resumePedido.putExtra(FLAG, data);  
        startActivityForResult(resumenPedido, 1);
    }

и в новом действии используйте метод

data = getIntent().getExtras(FLAG);

проверка аналогичные

...